Implement group descriptions, Close #64
This commit is contained in:
parent
bca3355025
commit
eb1ecfb352
@ -41,7 +41,7 @@ class UserGroupListForm(forms.Form):
|
||||
|
||||
class AddLDAPGroupForm(forms.Form):
|
||||
name = forms.CharField(label='Gruppenname', max_length=400)
|
||||
# TODO show only allowed user
|
||||
description = forms.CharField(label='Beschreibung', max_length=1024, required=False)
|
||||
members = forms.ModelMultipleChoiceField(label='Nutzer hinzufügen', widget=forms.CheckboxSelectMultiple,
|
||||
queryset=LdapUser.objects.all(), )
|
||||
|
||||
|
||||
@ -121,6 +121,7 @@ class LdapGroup(Model):
|
||||
object_classes = ['groupOfNames']
|
||||
|
||||
name = ldap_fields.CharField(db_column='cn', max_length=200, primary_key=True)
|
||||
description = ldap_fields.CharField(db_column='description', max_length=1024)
|
||||
members = ldap_fields.ListField(db_column='member')
|
||||
|
||||
@staticmethod
|
||||
|
||||
@ -61,11 +61,12 @@ def group_add(request, realm_id):
|
||||
# check whether it's valid:
|
||||
if form.is_valid():
|
||||
name = form.cleaned_data["name"]
|
||||
description = form.cleaned_data["description"]
|
||||
members = form.cleaned_data['members']
|
||||
members = [member.dn for member in members]
|
||||
LdapGroup.base_dn = f'ou=groups,{realm.ldap_base_dn}'
|
||||
try:
|
||||
LdapGroup.objects.create(name=name, members=members)
|
||||
LdapGroup.objects.create(name=name, description=description, 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.'})
|
||||
@ -93,6 +94,7 @@ def group_update(request, realm_id, group_dn):
|
||||
form = AddLDAPGroupForm(request.POST)
|
||||
if form.is_valid():
|
||||
group.name = form.cleaned_data['name']
|
||||
group.description = form.cleaned_data['description']
|
||||
members = form.cleaned_data['members']
|
||||
group.members = [member.dn for member in members]
|
||||
group.save()
|
||||
@ -105,7 +107,7 @@ def group_update(request, realm_id, group_dn):
|
||||
members = LdapUser.objects.none()
|
||||
if group.members:
|
||||
members = LdapUser.get_users_by_dn(realm, group.members)
|
||||
data = {'name': group.name, 'members': members}
|
||||
data = {'name': group.name, 'description': group.description, 'members': members}
|
||||
form = AddLDAPGroupForm(initial=data)
|
||||
|
||||
return render(request, 'group/group_detail.jinja2',
|
||||
|
||||
@ -9,6 +9,7 @@
|
||||
<form action="{{ url('realm-group-add', args=[realm.id]) }}" method="post">
|
||||
<input type="hidden" name="csrfmiddlewaretoken" value="{{ csrf_token }}">
|
||||
{{ mform.text_input(form.name) }}
|
||||
{{ mform.textarea_input(form.description) }}
|
||||
{{ form.members.label }}
|
||||
<div class="form-group w-25 float-right">
|
||||
<input type="text"
|
||||
|
||||
@ -7,6 +7,10 @@
|
||||
<h3>Gruppe {{ group.name }}</h3>
|
||||
<ul class="list-group list-group-flush w-100 mb-3">
|
||||
<li class="list-group-item">Ldap Domain: {{ group.dn }}</li>
|
||||
|
||||
{% if group.description %}
|
||||
<li class="list-group-item">Beschreibung: {{ group.description }}</li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
<h3>Mitglieder</h3>
|
||||
{{ mutils.get_user_table(realm, users) }}
|
||||
@ -21,6 +25,7 @@
|
||||
<form method="post">
|
||||
<input type="hidden" name="csrfmiddlewaretoken" value="{{ csrf_token }}">
|
||||
{{ mform.text_input(form.name) }}
|
||||
{{ mform.textarea_input(form.description) }}
|
||||
{{ form.members.label }}
|
||||
{{ mform.user_select_table_input(users, field=form.members) }}
|
||||
<div class="d-flex mt-4">
|
||||
|
||||
Reference in New Issue
Block a user