def get_version_info_test(self): store = Mock(GenericServerStore) # Block doesn't exist and user is other p = PublishService(store, 'any_user') block_brl = BRLBlock("user/user/theblock/master") store.read_block_permissions = Mock(side_effect=NotInStoreException()) block_info = p.get_block_info(block_brl) self.assertFalse(block_info.can_write) # Now block exists store.read_block_permissions = Mock( return_value=ElementPermissions(block_brl)) # Block exists and user is the authorized one p = PublishService(store, 'theuser') block_brl = BRLBlock("theuser/theuser/theblock/master") block_info = p.get_block_info(block_brl) self.assertTrue(block_info.can_write) # No authorized write to an existing block p = PublishService(store, 'wronguser') user = Mock(User) user.administrators = Permissions() store.read_user = Mock(return_value=user) block_info = p.get_block_info(block_brl) self.assertFalse(block_info.can_write) # Authorized user with an existing block p = PublishService(store, 'theuser') block_brl = BRLBlock("theuser/theuser/theblock/master") block_info = p.get_block_info(block_brl) self.assertTrue(block_info.can_write)
def __init__(self, brl_id): self.ID = brl_id self.password_timestamp = None self._encrypted_password = None # TODO: Confirmed email accounts? <= Only one at the moment, migrate active account # Basic fields self._email = None self.firstname = None self.lastname = None self.country = None self.description = None self.visible_email = False # Admin fields self.staff = False self.allow_mailing = True # Activation fields self.active = False self.confirmation_token = None self.joined_date = None self.confirmation_date = None # Workspace fields self.block_counter = 0 self.blocks = { } # {BRLBlock => (set(TAGS), "description", bytes_size)} self.administrators = Permissions() # Dict of brl_user => Num grants (block, hive or administrators) self.numeric_id = None self.social_accounts = {} # Achievements self.read_api_counter = 0 self.publish_counter = 0 self.reuse_counter = 0 # Profile fields self.street_1 = "" self.street_2 = "" self.city = "" self.postal_code = "" self.region = "" self.tax_id = "" self.vat = "" # OAuth credentials self.oauth_google_token = None self.oauth_github_token = None # Max workspace size self.max_workspace_size = BII_MAX_USER_WORKSPACE_SIZE # Invited by self.invited_by = None
def __init__(self, ID, private=False): self.ID = ID self.is_private = private self.read = Permissions() self.write = Permissions()