Add info if group could not be created, because no member (ldap requirement)

This commit is contained in:
Götz 2019-04-11 14:35:41 +02:00
parent 5b4fe02f86
commit b8b7fea7ad
2 changed files with 10 additions and 6 deletions

View File

@ -44,7 +44,7 @@ def group_detail(request, realm_id, group_dn):
@login_required
@is_realm_admin
def group_add(request, realm_id):
realm_obj = Realm.objects.get(id=realm_id)
realm = Realm.objects.get(id=realm_id)
LdapUser.base_dn = LdapUser.ROOT_DN
# if this is a POST request we need to process the form data
if request.method == 'POST':
@ -52,18 +52,19 @@ def group_add(request, realm_id):
form = AddLDAPGroupForm(request.POST)
# check whether it's valid:
if form.is_valid():
name = form.cleaned_data['name']
name = form.cleaned_data["name"]
members = form.cleaned_data['members']
members = [member.dn for member in members]
LdapGroup.base_dn = f'ou=groups,{realm_obj.ldap_base_dn}'
LdapGroup.base_dn = f'ou=groups,{realm.ldap_base_dn}'
LdapGroup.objects.create(name=name, members=members)
return redirect('realm-group-list', realm_id)
elif 'members' not in form.cleaned_data:
return render(request, 'group/group_add.jinja2', {'form': form, 'realm': realm,
'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
else:
form = AddLDAPGroupForm()
return render(request, 'group/group_add.jinja2', {'form': form, 'realm': realm_obj})
return render(request, 'group/group_add.jinja2', {'form': form, 'realm': realm})
@login_required

View File

@ -2,6 +2,9 @@
{% import 'macros/form_macros.jinja2' as mform %}
{% block detail_content %}
{% if extra_error %}
<div class="alert alert-warning">{{ extra_error }}</div>
{% endif %}
<form action="{{ url('realm-group-add', args=[realm.id]) }}" method="post">
<input type="hidden" name="csrfmiddlewaretoken" value="{{ csrf_token }}">
{{ mform.text_input(form.name) }}