Add document ACLs workflow actions

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
This commit is contained in:
Roberto Rosario
2019-06-10 03:40:09 -04:00
parent 505e0bd68b
commit f66328139e
6 changed files with 140 additions and 7 deletions

View File

@@ -1,8 +1,10 @@
from __future__ import unicode_literals, absolute_import
import itertools
import logging
from django.apps import apps
from django.utils.encoding import force_text
logger = logging.getLogger(__name__)
@@ -53,8 +55,21 @@ class ModelPermission(object):
return cls._registry.keys()
@classmethod
def get_for_class(cls, klass):
return cls._registry.get(klass, ())
def get_for_class(cls, klass, as_choices=False):
if as_choices:
results = []
for namespace, permissions in itertools.groupby(cls.get_for_class(klass=klass, as_choices=False), lambda entry: entry.namespace):
permission_options = [
(force_text(permission.pk), permission) for permission in permissions
]
results.append(
(namespace, permission_options)
)
return results
else:
return cls._registry.get(klass, ())
@classmethod
def get_for_instance(cls, instance):