Fix missing feedback on group already exists, Fix #56
This commit is contained in:
parent
b6eeaf9438
commit
a153054981
@ -8,6 +8,7 @@ from account_helper.models import Realm
|
|||||||
from account_manager.forms import AddLDAPGroupForm
|
from account_manager.forms import AddLDAPGroupForm
|
||||||
from account_manager.main_views import is_realm_admin
|
from account_manager.main_views import is_realm_admin
|
||||||
from account_manager.models import LdapGroup, LdapUser
|
from account_manager.models import LdapGroup, LdapUser
|
||||||
|
from ldap import ALREADY_EXISTS
|
||||||
|
|
||||||
|
|
||||||
def protect_cross_realm_group_access(view_func):
|
def protect_cross_realm_group_access(view_func):
|
||||||
@ -52,6 +53,7 @@ def group_detail(request, realm_id, group_dn):
|
|||||||
def group_add(request, realm_id):
|
def group_add(request, realm_id):
|
||||||
realm = Realm.objects.get(id=realm_id)
|
realm = Realm.objects.get(id=realm_id)
|
||||||
LdapUser.base_dn = LdapUser.ROOT_DN
|
LdapUser.base_dn = LdapUser.ROOT_DN
|
||||||
|
users = LdapUser.objects.all()
|
||||||
# if this is a POST request we need to process the form data
|
# if this is a POST request we need to process the form data
|
||||||
if request.method == 'POST':
|
if request.method == 'POST':
|
||||||
# create a form instance and populate it with data from the request:
|
# create a form instance and populate it with data from the request:
|
||||||
@ -62,14 +64,17 @@ def group_add(request, realm_id):
|
|||||||
members = form.cleaned_data['members']
|
members = form.cleaned_data['members']
|
||||||
members = [member.dn for member in members]
|
members = [member.dn for member in members]
|
||||||
LdapGroup.base_dn = f'ou=groups,{realm.ldap_base_dn}'
|
LdapGroup.base_dn = f'ou=groups,{realm.ldap_base_dn}'
|
||||||
LdapGroup.objects.create(name=name, members=members)
|
try:
|
||||||
|
LdapGroup.objects.create(name=name, members=members)
|
||||||
|
except ALREADY_EXISTS:
|
||||||
|
return render(request, 'group/group_add.jinja2', {'form': form, 'realm': realm, 'users': users,
|
||||||
|
'extra_error': 'Der Gruppenname ist leider schon belegt. Bitte wähle einen anderen.'})
|
||||||
return redirect('realm-group-list', realm_id)
|
return redirect('realm-group-list', realm_id)
|
||||||
elif 'members' not in form.cleaned_data:
|
elif 'members' not in form.cleaned_data:
|
||||||
return render(request, 'group/group_add.jinja2', {'form': form, 'realm': realm,
|
return render(request, 'group/group_add.jinja2', {'form': form, 'realm': realm, 'users': users,
|
||||||
'extra_error': 'Bitte wähle mindestens ein Mitglied aus. Falls kein Mitglied angezeigt wird, erstelle zuerst einen Nutzer'})
|
'extra_error': 'Bitte wähle mindestens ein Mitglied aus. Falls kein Mitglied angezeigt wird, erstelle zuerst einen Nutzer'})
|
||||||
# if a GET (or any other method) we'll create a blank form
|
# if a GET (or any other method) we'll create a blank form
|
||||||
else:
|
else:
|
||||||
users = LdapUser.objects.all()
|
|
||||||
form = AddLDAPGroupForm()
|
form = AddLDAPGroupForm()
|
||||||
return render(request, 'group/group_add.jinja2', {'form': form, 'realm': realm, 'users': users})
|
return render(request, 'group/group_add.jinja2', {'form': form, 'realm': realm, 'users': users})
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user