Implement group creation
This commit is contained in:
parent
2147439e6c
commit
4b3aeee7c7
@ -1,5 +1,6 @@
|
||||
from django import forms
|
||||
from rdn_helper.models import LdapUserRDN
|
||||
from rdn_helper.models import LdapUserRDN, LdapGroupRDN
|
||||
from .models import LdapUser
|
||||
|
||||
|
||||
class AddLDAPUserForm(forms.Form):
|
||||
@ -8,3 +9,9 @@ class AddLDAPUserForm(forms.Form):
|
||||
first_name = forms.CharField(label='first_name', max_length=400)
|
||||
last_name = forms.CharField(label='last_name', max_length=400)
|
||||
password = forms.CharField(widget=forms.PasswordInput)
|
||||
|
||||
|
||||
class AddLDAPGroupForm(forms.Form):
|
||||
rdn = forms.ModelChoiceField(queryset=LdapGroupRDN.objects.all())
|
||||
name = forms.CharField(label='name', max_length=400)
|
||||
members = forms.ModelMultipleChoiceField(widget=forms.CheckboxSelectMultiple, queryset=LdapUser.objects.all())
|
||||
|
||||
@ -5,4 +5,5 @@ urlpatterns = [
|
||||
path('user/list/', views.userlist, name='user-list'),
|
||||
path('user/get/<str:dn>/', views.userlist, name='user'),
|
||||
path('user/add/', views.adduser, name='user-add'),
|
||||
path('group/add/', views.addgroup, name='group-add'),
|
||||
]
|
||||
|
||||
@ -3,7 +3,7 @@ from django.http import HttpResponseRedirect
|
||||
from django.shortcuts import render, redirect
|
||||
from .models import LdapGroup, LdapUser
|
||||
from django.contrib.auth.models import User
|
||||
from .forms import AddLDAPUserForm
|
||||
from .forms import AddLDAPUserForm, AddLDAPGroupForm
|
||||
|
||||
|
||||
# @login_required
|
||||
@ -18,7 +18,8 @@ from .forms import AddLDAPUserForm
|
||||
|
||||
def userlist(request):
|
||||
user = LdapUser.objects.all()
|
||||
context = {'users': user, }
|
||||
groups = LdapGroup.objects.all()
|
||||
context = {'users': user, 'groups': groups}
|
||||
# ldap_user = LdapUser.objects.get(username='fred')
|
||||
# ldap_user = LdapUser.objects.create(rdn='ou=people,ou=fs_wiai,ou=fachschaften', username='b3',
|
||||
# password='lappen1', first_name='ferdinand1',
|
||||
@ -58,3 +59,24 @@ def adduser(request):
|
||||
form = AddLDAPUserForm()
|
||||
|
||||
return render(request, 'user_add.jinja', {'form': form})
|
||||
|
||||
|
||||
def addgroup(request):
|
||||
# if this is a POST request we need to process the form data
|
||||
if request.method == 'POST':
|
||||
# create a form instance and populate it with data from the request:
|
||||
form = AddLDAPGroupForm(request.POST)
|
||||
# check whether it's valid:
|
||||
if form.is_valid():
|
||||
rdn = form.cleaned_data['rdn']
|
||||
name = form.cleaned_data['name']
|
||||
members = form.cleaned_data['members']
|
||||
members = [member.dn for member in members]
|
||||
LdapGroup.objects.create(rdn=rdn, name=name, members=members)
|
||||
return redirect('user-list')
|
||||
|
||||
# if a GET (or any other method) we'll create a blank form
|
||||
else:
|
||||
form = AddLDAPGroupForm()
|
||||
|
||||
return render(request, 'group_add.jinja', {'form': form})
|
||||
|
||||
5
templates/group_add.jinja
Normal file
5
templates/group_add.jinja
Normal file
@ -0,0 +1,5 @@
|
||||
<form action="{{ url('group-add') }}" method="post">
|
||||
<input type="hidden" name="csrfmiddlewaretoken" value="{{ csrf_token }}">
|
||||
{{ form.as_p() }}
|
||||
<input type="submit" value="Submit">
|
||||
</form>
|
||||
@ -1,7 +1,13 @@
|
||||
{% extends 'base.jinja' %}
|
||||
{% block content %}
|
||||
|
||||
<a href="{{ url('user-add') }}">Nutzer anlegen</a> | <a href="{{ url('group-add') }}">Gruppe anlegen</a>
|
||||
<h2>Nutzer</h2>
|
||||
{% for user in users %}
|
||||
<p><a href="{{ url('user', args=[user.dn]) }}">{{ user.dn }}</a> - {{ user.username }}</p>
|
||||
<p>{{ user.username }} - <a href="{{ url('user', args=[user.dn]) }}">{{ user.dn }}</a></p>
|
||||
{% endfor %}
|
||||
|
||||
<h2>Gruppen</h2>
|
||||
{% for group in groups %}
|
||||
<p>{{ group.name }} - <a href="{{ url('user', args=[group.dn]) }}">{{ group.dn }}</a></p>
|
||||
{% endfor %}
|
||||
{% endblock %}
|
||||
|
||||
Reference in New Issue
Block a user