From 7aabd7a1cc5247ecf091158d65464a70687c51c3 Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Mon, 9 Jan 2012 02:20:27 -0400 Subject: [PATCH] Add 'get_classes' function to acls.api, add function docstrings --- apps/acls/api.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) 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()]