Moved PermissionManager and RoleMemberManager to a separate manager.py file
This commit is contained in:
@@ -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)
|
||||||
@@ -4,11 +4,7 @@ from django.contrib.contenttypes.models import ContentType
|
|||||||
from django.contrib.contenttypes import generic
|
from django.contrib.contenttypes import generic
|
||||||
from django.contrib.auth.models import User
|
from django.contrib.auth.models import User
|
||||||
|
|
||||||
|
from permissions.managers import RoleMemberManager, PermissionManager
|
||||||
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)]
|
|
||||||
|
|
||||||
|
|
||||||
class Permission(models.Model):
|
class Permission(models.Model):
|
||||||
@@ -92,12 +88,6 @@ class Role(models.Model):
|
|||||||
return ('role_list',)
|
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):
|
class RoleMember(models.Model):
|
||||||
role = models.ForeignKey(Role, verbose_name=_(u'role'))
|
role = models.ForeignKey(Role, verbose_name=_(u'role'))
|
||||||
member_type = models.ForeignKey(ContentType,
|
member_type = models.ForeignKey(ContentType,
|
||||||
|
|||||||
Reference in New Issue
Block a user