Fix chicken & egg problem for permissions when the dataset doesn't exists.
This commit is contained in:
@@ -2,6 +2,8 @@ from __future__ import unicode_literals, absolute_import
|
||||
|
||||
import logging
|
||||
|
||||
from permissions.models import StoredPermission
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
@@ -12,11 +14,10 @@ class ModelPermission(object):
|
||||
def register(cls, model, permissions):
|
||||
cls._registry.setdefault(model, [])
|
||||
for permission in permissions:
|
||||
cls._registry[model].append(permission.stored_permission.pk)
|
||||
cls._registry[model].append(permission)
|
||||
|
||||
@classmethod
|
||||
def get_for_instance(cls, instance):
|
||||
from permissions.models import StoredPermission
|
||||
|
||||
pks = cls._registry.get(type(instance), ())
|
||||
permissions = cls._registry.get(type(instance), ())
|
||||
pks = [permission.stored_permission.pk for permission in permissions]
|
||||
return StoredPermission.objects.filter(pk__in=pks)
|
||||
|
||||
Reference in New Issue
Block a user