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)
示例#2
0
    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()