New controller.Users.calculate_group_storage().
This commit is contained in:
parent
f8efc2f178
commit
a0ca8025d0
|
@ -548,6 +548,17 @@ class Users( object ):
|
|||
"""
|
||||
return sum( self.__database.select_one( tuple, user.sql_calculate_storage() ), 0 )
|
||||
|
||||
def calculate_group_storage( self, user ):
|
||||
"""
|
||||
Calculate total storage utilization for all groups that the given user is a member of.
|
||||
|
||||
@type user: User
|
||||
@param user: user for which to calculate storage utilization
|
||||
@rtype: int
|
||||
@return: total bytes used for group storage
|
||||
"""
|
||||
return self.__database.select_one( int, user.sql_calculate_group_storage() )
|
||||
|
||||
def update_storage( self, user_id, commit = True ):
|
||||
"""
|
||||
Calculate and record total storage utilization for the given user.
|
||||
|
@ -564,6 +575,7 @@ class Users( object ):
|
|||
if user:
|
||||
user.storage_bytes = self.calculate_storage( user )
|
||||
self.__database.save( user, commit )
|
||||
user.group_storage_bytes = self.calculate_group_storage( user )
|
||||
|
||||
return user
|
||||
|
||||
|
|
|
@ -119,6 +119,12 @@ class Test_controller( object ):
|
|||
User.sql_calculate_storage = lambda self: \
|
||||
lambda database: sql_calculate_storage( self, database )
|
||||
|
||||
def sql_calculate_group_storage( self, database ):
|
||||
return 0
|
||||
|
||||
User.sql_calculate_group_storage = lambda self: \
|
||||
lambda database: sql_calculate_group_storage( self, database )
|
||||
|
||||
def sql_has_access( self, notebook_id, read_write, owner, database ):
|
||||
for ( user_id, notebook_infos ) in database.user_notebook.items():
|
||||
for notebook_info in notebook_infos:
|
||||
|
|
|
@ -679,6 +679,7 @@ class Test_users( Test_controller ):
|
|||
|
||||
user = self.database.load( User, self.user.object_id )
|
||||
assert user.storage_bytes == expected_size
|
||||
assert user.group_storage_bytes == 0
|
||||
assert user.revision > previous_revision
|
||||
|
||||
def test_update_storage_with_unknown_user_id( self ):
|
||||
|
@ -690,6 +691,7 @@ class Test_users( Test_controller ):
|
|||
|
||||
user = self.database.load( User, self.user.object_id )
|
||||
assert self.user.storage_bytes == 0
|
||||
assert self.user.group_storage_bytes == 0
|
||||
assert self.user.revision == original_revision
|
||||
|
||||
def test_check_access( self ):
|
||||
|
|
Reference in New Issue
Block a user