From 281f01b8a0c923753c7e08b081cb510b7e550391 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laura=20Kl=C3=BCnder?= Date: Thu, 22 Dec 2016 02:06:13 +0100 Subject: [PATCH] remove AccessUserForm --- src/c3nav/access/forms.py | 57 +++++++++++++++++++-------------------- 1 file changed, 27 insertions(+), 30 deletions(-) diff --git a/src/c3nav/access/forms.py b/src/c3nav/access/forms.py index f3e47d18..c0c767fb 100644 --- a/src/c3nav/access/forms.py +++ b/src/c3nav/access/forms.py @@ -1,44 +1,41 @@ from django.forms import ModelForm, MultipleChoiceField from django.utils.translation import ugettext_lazy as _ -from c3nav.access.models import AccessToken, AccessUser +from c3nav.access.models import AccessToken from c3nav.mapdata.models import AreaLocation -class AccessUserForm(ModelForm): - class Meta: - model = AccessUser - fields = ['user_url', 'description'] +def get_permissions_field(request): + locations = AreaLocation.objects.filter(routing_inclusion='needs_permission') + + has_operator = True + try: + request.user.operator + except: + has_operator = False + + OPTIONS = [] + can_full = False + if request.user.is_superuser: + can_full = True + elif has_operator: + can_award = request.user.operator.can_award_permissions.split(';') + can_full = ':full' in can_award + locations = locations.filter(name__in=can_award) + else: + locations = [] + + if can_full: + OPTIONS.append((':full', _('Full Permissions'))) + + OPTIONS += [(location.name, location.title) for location in locations] + return MultipleChoiceField(choices=OPTIONS, required=True) class AccessTokenForm(ModelForm): def __init__(self, *args, request, **kwargs): super().__init__(*args, **kwargs) - locations = AreaLocation.objects.filter(routing_inclusion='needs_permission') - - has_operator = True - try: - request.user.operator - except: - has_operator = False - - OPTIONS = [] - can_full = False - if request.user.is_superuser: - can_full = True - elif has_operator: - can_award = request.user.operator.can_award_permissions.split(';') - can_full = ':full' in can_award - locations = locations.filter(name__in=can_award) - else: - locations = [] - - if can_full: - OPTIONS.append((':full', _('Full Permissions'))) - - OPTIONS += [(location.name, location.title) for location in locations] - print(OPTIONS) - self.fields['permissions'] = MultipleChoiceField(choices=OPTIONS, required=True) + self.fields['permissions'] = get_permissions_field(request) class Meta: model = AccessToken