Add a source of attributes from the main administration interface

This commit is contained in:
Mikaël Ates 2011-08-25 22:43:54 +02:00
parent 3fd4f8013f
commit 6ec65d84a3
4 changed files with 28 additions and 32 deletions

View File

@ -33,8 +33,6 @@ from django.conf import settings
from django.db import transaction
from forms import AddSourceForm
from core import is_policy_action_creator, is_policy_object_creator, \
is_policy_user_administrator, is_in_policy, is_valid_regex, \
is_admin_permission_in_policy, is_authorized_by_names, \
@ -1085,28 +1083,3 @@ def del_abac_permission(request):
messages.add_message(request, messages.INFO,
_('Permission deleted'))
return HttpResponseRedirect(back)
@csrf_exempt
@check_policy_in_session
@check_authorized_for_abac
def add_abac_source(request):
policy = get_policy_from_session(request)
if request.method == 'POST':
if 'cancel' in request.POST:
messages.add_message(request, messages.INFO,
_('Operation canceled'))
return HttpResponseRedirect('mod_policy?id=' + str(policy.id))
form = AddSourceForm(request.POST)
if form.is_valid():
source = form.save()
logger.debug('add_abac_source: Source %s created' %source)
messages.add_message(request, messages.INFO,
_('The source %s has been correctly created.') % source)
else:
messages.add_message(request, messages.ERROR,
_('Invalid form. Source not created.'))
return HttpResponseRedirect('mod_policy?id=' + str(policy.id))
else:
form = AddSourceForm()
title = _('Add a new ABAC source in %s' %policy)
return return_add_any(request, form, title)

View File

@ -158,7 +158,8 @@ def index(request):
if is_user_administrator(request.user):
list_power_services['Generic user management'] = \
{'add_user': "Add a user",
'list_users': "Modify or delete a user"}
'list_users': "Modify or delete a user",
'add_abac_source': "Add a source of attributes"}
if policies:
list_user_mgmt_services['list_users_for_aliases'] = \
'Manage user aliases and \
@ -354,8 +355,6 @@ def mod_policy(request):
"Display the whole policy"
if is_policy_abac_administrator(request.user, policy):
list_abac_services['add_abac_source'] = \
"Add a trusted source of attributes"
if at_least_one_abac_permission_to_set(request.user, policy):
list_abac_services['add_abac_permission'] = \
"Create an ABAC permission"

View File

@ -123,7 +123,7 @@ urlpatterns = patterns('',
url(r'^add_abac_permission$', 'acs.abac_views.add_abac_permission'),
url(r'^list_abac_permissions$', 'acs.abac_views.list_abac_permissions'),
url(r'^del_abac_permission$', 'acs.abac_views.del_abac_permission'),
url(r'^add_abac_source$', 'acs.abac_views.add_abac_source'),
url(r'^add_abac_source$', 'acs.views.add_abac_source'),
url(r'^add_admin_view$',
'acs.acs_administration_views.add_admin_view'),

View File

@ -32,7 +32,10 @@ from django.conf import settings
from forms import AddRoleForm, AddObjectForm, AddViewForm, AddActionForm, \
AddActivityForm, RoleChangeForm, AcsObjectChangeForm, \
ViewChangeForm, ActionChangeForm, ActivityChangeForm
ViewChangeForm, ActionChangeForm, ActivityChangeForm, \
AddSourceForm
from core import is_policy_action_creator, is_policy_object_creator, \
is_policy_user_administrator, is_in_policy, is_valid_regex, \
@ -82,6 +85,27 @@ root_url = settings.ROOT_URL
'''
@csrf_exempt
@prevent_access_to_not_user_administrators
def add_abac_source(request):
title = _('Add a new ABAC source')
if request.method == 'POST':
if 'cancel' in request.POST:
messages.add_message(request, messages.INFO,
_('Operation canceled'))
return HttpResponseRedirect(root_url)
form = AddSourceForm(request.POST)
if form.is_valid():
source = form.save()
logger.debug('add_abac_source: Source %s created' %source)
messages.add_message(request, messages.INFO,
_('The source %s has been correctly created.') % source)
return HttpResponseRedirect(root_url)
else:
form = AddSourceForm()
return return_add_any(request, form, title)
@csrf_exempt
@prevent_access_to_not_user_administrators
def list_users(request):