Initial updates to support permissions

This commit is contained in:
Roberto Rosario
2011-02-12 05:45:34 -04:00
parent 0ece9d1970
commit a47ff7c4b4
5 changed files with 62 additions and 12 deletions

View File

@@ -1,5 +1,11 @@
import copy
from django.db.utils import DatabaseError
from permissions.utils import has_permission
from permissions.models import Permission
object_navigation = {}
menu_links = []
model_list_columns = {}
@@ -38,3 +44,25 @@ def register_model_list_columns(model, columns):
model_list_columns[model].extend(columns)
else:
model_list_columns[model] = copy.copy(columns)
def register_permissions(app, permissions):
if permissions:
for permission in permissions:
full_permission_name = "%s_%s" % (app, permission['name'])
try:
#if not Permission.objects.filter(codename=full_permission_name):
# Permission(name=unicode(permission['label']), codename=full_permission_name).save()
permission_obj, created = Permission.objects.get_or_create(codename=full_permission_name)
permission_obj.name=unicode(permission['label'])
permission_obj.save()
except DatabaseError:
#Special case for ./manage.py syncdb
pass
def check_permissions(object, user, permission_list):
temp_role = []
for permission in permission_list:
if has_permission(object, user, permission):
return True