Permissions app updates

This commit is contained in:
Roberto Rosario
2012-09-07 02:04:38 -04:00
parent c906a5dcee
commit 4db14e71da
6 changed files with 28 additions and 41 deletions

View File

@@ -1,16 +1,11 @@
from __future__ import absolute_import
from django.contrib.auth.models import User
from django.db.models.signals import post_save
from django.core.exceptions import ObjectDoesNotExist
from django.utils.translation import ugettext_lazy as _
#from backups.api import AppBackup, ModelBackup
#from app_registry import register_app, UnableToRegister
from navigation.api import bind_links, register_multi_item_links
from project_setup.api import register_setup
#from project_setup.api import register_setup
from .conf.settings import DEFAULT_ROLES
from .links import (role_list, role_create, role_edit, role_members,
role_permissions, role_delete, permission_grant, permission_revoke)
from .models import Role
@@ -23,27 +18,11 @@ register_multi_item_links(['role_permissions'], [permission_grant, permission_re
permission_views = ['role_list', 'role_create', 'role_edit', 'role_members', 'role_permissions', 'role_delete']
def user_post_save(sender, instance, **kwargs):
if kwargs.get('created', False):
for default_role in DEFAULT_ROLES:
if isinstance(default_role, Role):
#If a model is passed, execute method
default_role.add_member(instance)
else:
#If a role name is passed, lookup the corresponding model
try:
role = Role.objects.get(name=default_role)
role.add_member(instance)
except ObjectDoesNotExist:
pass
post_save.connect(user_post_save, sender=User)
register_setup(role_list)
#register_setup(role_list)
# app.set_backup([app_registry.classes.ModelBackup()])
#
#try:
# app = register_app('permissions', _(u'Permissions'))
#except UnableToRegister:
# pass
#else:
# AppBackup(app, [ModelBackup()])

View File

@@ -1,8 +1,14 @@
from __future__ import absolute_import
from icons.literals import MEDAL_GOLD, MEDAL_GOLD_ADD, MEDAL_GOLD_DELETE
from icons.literals import (MEDAL_GOLD, MEDAL_GOLD_ADD, MEDAL_GOLD_DELETE,
GROUP_KEY, KEY_GO, KEY_ADD, KEY_DELETE)
from icons import Icon
icon_role = Icon(MEDAL_GOLD)
icon_role_add = Icon(MEDAL_GOLD_ADD)
icon_role_delete = Icon(MEDAL_GOLD_DELETE)
icon_role_members = Icon(GROUP_KEY)
icon_permissions = Icon(KEY_GO)
icon_permission_grant = Icon(KEY_ADD)
icon_permission_revoke = Icon(KEY_DELETE)

View File

@@ -7,13 +7,15 @@ from navigation.api import Link
from .permissions import (PERMISSION_ROLE_VIEW, PERMISSION_ROLE_EDIT,
PERMISSION_ROLE_CREATE, PERMISSION_ROLE_DELETE,
PERMISSION_PERMISSION_GRANT, PERMISSION_PERMISSION_REVOKE)
from .icons import (icon_role, icon_role_add, icon_role_delete, icon_permissions,
icon_permission_grant, icon_permission_revoke, icon_role_members)
role_list = Link(text=_(u'roles'), view='role_list', sprite='medal_gold_1', icon='medal_gold_1.png', permissions=[PERMISSION_ROLE_VIEW])#, 'children_view_regex': [r'^permission_', r'^role_'])
role_create = Link(text=_(u'create new role'), view='role_create', sprite='medal_gold_add', permissions=[PERMISSION_ROLE_CREATE])
role_edit = Link(text=_(u'edit'), view='role_edit', args='object.id', sprite='medal_gold_1', permissions=[PERMISSION_ROLE_EDIT])
role_members = Link(text=_(u'members'), view='role_members', args='object.id', sprite='group_key', permissions=[PERMISSION_ROLE_EDIT])
role_permissions = Link(text=_(u'role permissions'), view='role_permissions', args='object.id', sprite='key_go', permissions=[PERMISSION_PERMISSION_GRANT, PERMISSION_PERMISSION_REVOKE])
role_delete = Link(text=_(u'delete'), view='role_delete', args='object.id', sprite='medal_gold_delete', permissions=[PERMISSION_ROLE_DELETE])
role_list = Link(text=_(u'roles'), view='role_list', icon=icon_role, permissions=[PERMISSION_ROLE_VIEW])#, 'children_view_regex': [r'^permission_', r'^role_'])
role_create = Link(text=_(u'create new role'), view='role_create', icon=icon_role_add, permissions=[PERMISSION_ROLE_CREATE])
role_edit = Link(text=_(u'edit'), view='role_edit', args='object.id', icon=icon_role, permissions=[PERMISSION_ROLE_EDIT])
role_members = Link(text=_(u'members'), view='role_members', args='object.id', icon=icon_role_members, permissions=[PERMISSION_ROLE_EDIT])
role_permissions = Link(text=_(u'role permissions'), view='role_permissions', args='object.id', icon=icon_permissions, permissions=[PERMISSION_PERMISSION_GRANT, PERMISSION_PERMISSION_REVOKE])
role_delete = Link(text=_(u'delete'), view='role_delete', args='object.id', icon=icon_role_delete, permissions=[PERMISSION_ROLE_DELETE])
permission_grant = Link(text=_(u'grant'), view='permission_multiple_grant', sprite='key_add', permissions=[PERMISSION_PERMISSION_GRANT])
permission_revoke = Link(text=_(u'revoke'), view='permission_multiple_revoke', sprite='key_delete', permissions=[PERMISSION_PERMISSION_REVOKE])
permission_grant = Link(text=_(u'grant'), view='permission_multiple_grant', icon=icon_permission_grant, permissions=[PERMISSION_PERMISSION_GRANT])
permission_revoke = Link(text=_(u'revoke'), view='permission_multiple_revoke', icon=icon_permission_revoke, permissions=[PERMISSION_PERMISSION_REVOKE])

View File

@@ -5,7 +5,6 @@ from django.contrib.contenttypes.models import ContentType
from common.models import AnonymousUserSingleton
logger = logging.getLogger(__name__)

View File

@@ -26,6 +26,7 @@ from .forms import RoleForm, RoleForm_view
from .permissions import (PERMISSION_ROLE_VIEW, PERMISSION_ROLE_EDIT,
PERMISSION_ROLE_CREATE, PERMISSION_ROLE_DELETE,
PERMISSION_PERMISSION_GRANT, PERMISSION_PERMISSION_REVOKE)
from .icons import icon_permission_grant
def role_list(request):
@@ -60,7 +61,7 @@ def role_permissions(request, role_id):
{'name': _(u'name'), 'attribute': encapsulate(lambda x: x.label)},
{
'name':_(u'has permission'),
'attribute': encapsulate(lambda x: two_state_template(x.requester_has_this(role))),
'attribute': encapsulate(lambda x: two_state_template(x.requester_has_this(role)).display_small()),
},
],
'hide_link': True,
@@ -166,7 +167,7 @@ def permission_grant(request):
context = {
'previous': previous,
'next': next,
'form_icon': u'key_add.png',
'form_icon': icon_permission_grant,
}
context['title'] = _(u'Are you sure you wish to grant the %(permissions_label)s %(title_suffix)s?') % {

View File

@@ -7,7 +7,7 @@ from django.core.urlresolvers import reverse
def role_permission_link(requester, permission, permission_list):
ct = ContentType.objects.get_for_model(requester)
template = u'<span class="nowrap"><a href="%(url)s"><span class="famfam active famfam-%(icon)s"></span>%(text)s</a></span>'
template = u'<span class="nowrap"><a href="%(url)s">{{ icon.display_small }}%(text)s</a></span>'
if permission in permission_list:
return mark_safe(template % {