Cache member roles, store permission class doesn't have a label field - don't set it and save it.
This commit is contained in:
@@ -16,9 +16,17 @@ logger = logging.getLogger(__name__)
|
||||
|
||||
class RoleMemberManager(models.Manager):
|
||||
def get_roles_for_member(self, member_obj):
|
||||
member_obj = AnonymousUserSingleton.objects.passthru_check(member_obj)
|
||||
member_type = ContentType.objects.get_for_model(member_obj)
|
||||
return (role_member.role for role_member in self.model.objects.filter(member_type=member_type, member_id=member_obj.pk))
|
||||
"""
|
||||
Return the roles to which a member_obj belongs to.
|
||||
"""
|
||||
try:
|
||||
return self.model._member_roles_cache[member_obj]
|
||||
except KeyError:
|
||||
member_obj = AnonymousUserSingleton.objects.passthru_check(member_obj)
|
||||
member_type = ContentType.objects.get_for_model(member_obj)
|
||||
roles = [role_member.role for role_member in self.model.objects.filter(member_type=member_type, member_id=member_obj.pk)]
|
||||
self.model._member_roles_cache[member_obj] = roles
|
||||
return roles
|
||||
|
||||
|
||||
class StoredPermissionManager(models.Manager):
|
||||
|
||||
Reference in New Issue
Block a user