Updated permissions app to only return active permissions on the views and querysets

This commit is contained in:
Roberto Rosario
2011-10-29 02:23:33 -04:00
parent 0c512ccaec
commit e048711d82
3 changed files with 20 additions and 11 deletions

View File

@@ -1,6 +1,8 @@
from django.db import models
from django.contrib.contenttypes.models import ContentType
from permissions.runtime import permission_titles
class RoleMemberManager(models.Manager):
def get_roles_for_member(self, member_obj):
@@ -11,4 +13,16 @@ class RoleMemberManager(models.Manager):
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)
return self.model.objects.active_only().filter(permissionholder__holder_type=ct).filter(permissionholder__holder_id=holder.pk)
def active_only(self):
namespaces = []
names = []
for key in permission_titles:
namespace, name = key.split(u'.')
if namespace:
namespaces.append(namespace)
if name:
names.append(name)
return super(PermissionManager, self).get_query_set().filter(namespace__in=namespaces).filter(name__in=names).exclude(label=u'')