diff options
author | alaaosh <alaaosh@54714841-351b-0410-a198-e36a94b762f5> | 2009-12-14 23:48:44 (GMT) |
---|---|---|
committer | Sayamindu Dasgupta <sayamindu@gmail.com> | 2010-01-08 22:37:51 (GMT) |
commit | 05bccad2468d0facd6fe89919b59d15396f350c2 (patch) | |
tree | 5792e8f0aa35847566e662c6bb293f4ab43e4b68 | |
parent | bec67a2ab285629c4eb2aabe209166d9ae8942de (diff) |
gracefully handle users who change permissions but forget to choose a profile
git-svn-id: https://translate.svn.sourceforge.net/svnroot/translate/src/branches/Pootle-2.0/Pootle@13505 54714841-351b-0410-a198-e36a94b762f5
-rw-r--r-- | Pootle-2.0.0/local_apps/pootle_app/views/language/admin_permissions.py | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/Pootle-2.0.0/local_apps/pootle_app/views/language/admin_permissions.py b/Pootle-2.0.0/local_apps/pootle_app/views/language/admin_permissions.py index f75a02f..672748b 100644 --- a/Pootle-2.0.0/local_apps/pootle_app/views/language/admin_permissions.py +++ b/Pootle-2.0.0/local_apps/pootle_app/views/language/admin_permissions.py @@ -169,8 +169,8 @@ def get_permission_data(directory): permission_data.append({'id': None, 'permissions': [permission for permission in default_permissions], 'username': '', - 'profiles': u'None', - 'profile_data': [(u'None', '')] + [(profile.id, profile.user.username) + 'profiles': None, + 'profile_data': [(None, '')] + [(profile.id, profile.user.username) for profile in profiles_without_permissions], 'new': True}) return permission_data @@ -191,12 +191,12 @@ def process_update(request, directory): return deleted_forms, changed_forms def get_permission_set(form): + if form.is_new_user() and form.cleaned_data['profiles'].isdigit(): permission_set = PermissionSet(profile_id=int(form.cleaned_data['profiles']), directory=directory) - if form.is_new_user(): permission_set.save() return permission_set + elif form.cleaned_data['id'] is not None: return PermissionSet.objects.get(pk=form.cleaned_data['id']) - else: if request.method == 'POST': permission_set_formset = PermissionSetFormSet(data=request.POST, initial=get_permission_data(directory)) @@ -212,6 +212,8 @@ def process_update(request, directory): for form in changed_forms: permission_set = get_permission_set(form) + if permission_set is None: + continue # pootle_permissions is a (permission codename -> # PermissionSet) dict. We get the permission codenames # from form['permissions'].data. |