Final changes to support permissions and roles

This commit is contained in:
Roberto Rosario
2011-02-13 04:33:40 -04:00
parent a47ff7c4b4
commit 344a613514
24 changed files with 455 additions and 71 deletions
-25
View File
@@ -2,9 +2,6 @@ import copy
from django.db.utils import DatabaseError
from permissions.utils import has_permission
from permissions.models import Permission
object_navigation = {}
menu_links = []
@@ -44,25 +41,3 @@ 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
@@ -1,7 +1,17 @@
{% load i18n %}
{% load permission_tags %}
{% for link in object_navigation_links %}
{% if link.permissions %}
{% check_permissions request.user link.permissions.namespace link.permissions.permissions %}
{% if permission %}
{% if as_li %}<li>{% endif %}
<a class="{{ link.class }}" href="{{ link.url }}">{% if link.famfam %}<span class="famfam active famfam-{{ link.famfam|default:'link' }}"></span>{% endif %}{{ link.text|capfirst }}{% if link.error %} - {{ link.error }}{% endif %}{% if link.active %}<span class="famfam active famfam-resultset_previous"></span>{% endif %}</a>{% if horizontal %}{% if not forloop.last %} | {% endif %}{% endif %}
{% if as_li %}</li>{% endif %}
{% endif %}
{% else %}
{% if as_li %}<li>{% endif %}
<a class="{{ link.class }}" href="{{ link.url }}">{% if link.famfam %}<span class="famfam active famfam-{{ link.famfam|default:'link' }}"></span>{% endif %}{{ link.text|capfirst }}{% if link.error %} - {{ link.error }}{% endif %}{% if link.active %}<span class="famfam active famfam-resultset_previous"></span>{% endif %}</a>{% if horizontal %}{% if not forloop.last %} | {% endif %}{% endif %}
{% if as_li %}</li>{% endif %}
{% endif %}
{% endfor %}