29 lines
727 B
Python
29 lines
727 B
Python
from __future__ import unicode_literals
|
|
|
|
from django.contrib.contenttypes.models import ContentType
|
|
|
|
_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 _class_permissions.keys()
|