[abac] Display more intuitive numbers for predicate used to set the logic rule

This commit is contained in:
Mikaël Ates 2011-08-06 09:48:46 +02:00
parent 91572594f3
commit 7017406dd6
1 changed files with 11 additions and 5 deletions

View File

@ -240,7 +240,7 @@ def add_abac_permission(request):
if 'predicates' in request.session:
predicates = request.session['predicates']
request.session.pop('predicates')
predicates.append((len(predicates), request.session['working_predicate']))
predicates.append(request.session['working_predicate'])
request.session.pop('working_predicate')
request.session['predicates'] = predicates
messages.add_message(request, messages.INFO,
@ -252,12 +252,12 @@ def add_abac_permission(request):
if not 'predicates' in request.session:
messages.add_message(request, messages.ERROR,
_('No predicate to delete'))
elif int(request.POST['predicate_id']) > len(request.session['predicates'])-1:
elif int(request.POST['predicate_id']) > len(request.session['predicates']):
messages.add_message(request, messages.ERROR,
_('Unknown predicate'))
else:
predicates = request.session['predicates']
predicates.pop(int(request.POST['predicate_id']))
predicates.pop(int(request.POST['predicate_id'])-1)
request.session.pop('predicates')
if not predicates:
if 'rule' in request.session:
@ -533,7 +533,8 @@ def check_data_and_create_permission(request, what, how):
raise Exception('unable to initalize rule')
p_ids1 = {}
p_ids2 = {}
for p_id, predicate in request.session['predicates']:
p_id = 1
for predicate in request.session['predicates']:
if not 'type' in predicate:
raise Exception('Missing type of predicate %s' %str(p_id))
pred = None
@ -598,6 +599,7 @@ def check_data_and_create_permission(request, what, how):
rdm_str = ''.join(random.choice(string.ascii_uppercase) for x in range(8))
p_ids1[p_id] = rdm_str
p_ids2[rdm_str] = pred.id
p_id = p_id + 1
if not p_ids1:
raise Exception('No predicate defined')
@ -752,7 +754,11 @@ def return_add_abac_permission_form(request, template_name='add_abac_permission.
else:
tpl_p['predicate_types'] = PREDICATE_TYPES_TYPE
if 'predicates' in request.session:
tpl_p['predicates'] = request.session['predicates']
tpl_p['predicates'] = []
i = 1
for p in request.session['predicates']:
tpl_p['predicates'].append((i, p))
i = i + 1
if 'rule' in request.session:
tpl_p['rule'] = request.session['rule']