diff --git a/apps/acls/api.py b/apps/acls/api.py index 8dc3f2d931..2b72ef6b11 100644 --- a/apps/acls/api.py +++ b/apps/acls/api.py @@ -1,13 +1,30 @@ +from __future__ import absolute_import + from django.contrib.contenttypes.models import ContentType +from .classes import AccessObjectClass + _class_permissions = {} def class_permissions(cls, permission_list): + """ + Associate a permissions list to a class + """ stored_permissions = _class_permissions.setdefault(cls, []) stored_permissions.extend(permission_list) def get_class_permissions_for(obj): + """ + Return a list of permissions associated with a content type + """ content_type = ContentType.objects.get_for_model(obj) return _class_permissions.get(content_type.model_class(), []) + + +def get_classes(): + """ + Return a list of encapsulated classes that have been registered + """ + return [AccessObjectClass.encapsulate(cls) for cls in _class_permissions.keys()]