def permissions(request): logging.info(">> users.views.permissions") roles = Role.all() area = "users" if request.method == 'POST': for role in roles: _list = request.POST.getlist(role.name) _ref = Permission.get(role=role.name) if _ref is None: _ref = Permission(role=role.name) _ref.actions = _list _ref.put() apps = {} actions = [] for app in settings.INSTALLED_APPS: app_actions = [x for x in Action.filter('appname =', app) if x.authorizable ] if app_actions: apps[app] = app_actions actions += app_actions permissions = {} for role in roles: permission = Permission.get_by_role(role=role.name) permissions[role.name] = {} for action in actions: permissions[role.name].setdefault(action.name, (action.name in permission.actions and True)) c = template.RequestContext(request, locals()) _flag_as_admin(c) return render_to_response('permissions.html', c)
def roles(request): if request.method == 'POST': action = request.POST.get('action', None) if action == 'role_delete': _ref = Role.get(uuid=request.POST.get('role_uuid')) _ref.delete() elif action == 'role_create': _ref = Role(name=request.POST.get('role_name')) _ref.put() area = "users" items = util.paginate(request, Role.all()) c = template.RequestContext(request, locals()) _flag_as_admin(c) return render_to_response('roles.html', c)