From 581f8cd52d259bf8a16a2f0fd7e17a09cb1d45a1 Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Tue, 24 May 2011 23:39:10 -0400 Subject: [PATCH] Moved PermissionManager and RoleMemberManager to a separate manager.py file --- apps/permissions/managers.py | 14 ++++++++++++++ apps/permissions/models.py | 12 +----------- 2 files changed, 15 insertions(+), 11 deletions(-) create mode 100644 apps/permissions/managers.py diff --git a/apps/permissions/managers.py b/apps/permissions/managers.py new file mode 100644 index 0000000000..e4cfd1fdf5 --- /dev/null +++ b/apps/permissions/managers.py @@ -0,0 +1,14 @@ +from django.db import models +from django.contrib.contenttypes.models import ContentType + + +class RoleMemberManager(models.Manager): + def get_roles_for_member(self, 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)] + + +class PermissionManager(models.Manager): + def get_for_holder(self, holder): + ct = ContentType.objects.get_for_model(holder) + return self.model.objects.filter(permissionholder__holder_type=ct).filter(permissionholder__holder_id=holder.pk) diff --git a/apps/permissions/models.py b/apps/permissions/models.py index 1facbe2b21..df5d7c0626 100644 --- a/apps/permissions/models.py +++ b/apps/permissions/models.py @@ -4,11 +4,7 @@ from django.contrib.contenttypes.models import ContentType from django.contrib.contenttypes import generic from django.contrib.auth.models import User - -class PermissionManager(models.Manager): - def get_for_holder(self, holder): - ct = ContentType.objects.get_for_model(holder) - return [Permission.objects.get(pk=pk) for pk in PermissionHolder.objects.filter(holder_type=ct, holder_id=holder.pk).values_list('permission_id', flat=True)] +from permissions.managers import RoleMemberManager, PermissionManager class Permission(models.Model): @@ -92,12 +88,6 @@ class Role(models.Model): return ('role_list',) -class RoleMemberManager(models.Manager): - def get_roles_for_member(self, member_obj): - member_type = ContentType.objects.get_for_model(member_obj) - return [role_member.role for role_member in RoleMember.objects.filter(member_type=member_type, member_id=member_obj.pk)] - - class RoleMember(models.Model): role = models.ForeignKey(Role, verbose_name=_(u'role')) member_type = models.ForeignKey(ContentType,