Add login require

This commit is contained in:
Götz 2019-03-29 13:29:25 +01:00
parent 95bd7ba88a
commit 0807fb85e3
3 changed files with 23 additions and 4 deletions

View File

@ -10,7 +10,7 @@ class Realm(models.Model):
ldap_base_dn = models.CharField(max_length=400, unique=True) ldap_base_dn = models.CharField(max_length=400, unique=True)
def __str__(self): def __str__(self):
return f'{self.name} - {self.ldap_rdn_org}' return f'{self.name} - {self.ldap_base_dn}'
class LdapUserRDN(models.Model): class LdapUserRDN(models.Model):

View File

@ -2,7 +2,8 @@ from django.shortcuts import render, redirect
from .models import LdapGroup, LdapUser from .models import LdapGroup, LdapUser
from .forms import AddLDAPUserForm, AddLDAPGroupForm, RealmAddForm, RealmUpdateForm from .forms import AddLDAPUserForm, AddLDAPGroupForm, RealmAddForm, RealmUpdateForm
from account_helper.models import Realm from account_helper.models import Realm
from django.contrib.auth.models import User, Group from django.contrib.auth.models import Group
from django.contrib.auth.decorators import login_required, user_passes_test
# @login_required # @login_required
@ -14,7 +15,17 @@ from django.contrib.auth.models import User, Group
# context = {'request': request, 'ldapuser': ldapuserprofile, } # context = {'request': request, 'ldapuser': ldapuserprofile, }
# return render(request, 'myapp/userinfo.html', context) # return render(request, 'myapp/userinfo.html', context)
@login_required
def realm(request): def realm(request):
user = request.user
if not user.is_superuser:
realms = Realm.objects.filter(admin_group__user__username__contains=user.username)
if len(realms) == 0:
return redirect('user-detail')
elif len(realms) == 1:
return redirect('realm-detail', realms[0].id)
else:
return render(request, 'realm/realm_home.jinja2', {'realms': realms})
realms = Realm.objects.all() realms = Realm.objects.all()
if request.method == 'POST': if request.method == 'POST':
form = RealmAddForm(request.POST) form = RealmAddForm(request.POST)
@ -29,11 +40,13 @@ def realm(request):
return render(request, 'realm/realm_home.jinja2', {'realms': realms, 'form': form}) return render(request, 'realm/realm_home.jinja2', {'realms': realms, 'form': form})
@login_required
def realm_detail(request, id): def realm_detail(request, id):
realm_obj = Realm.objects.get(id=id) realm_obj = Realm.objects.get(id=id)
return render(request, 'realm/realm_detailed.jinja2', {'realm': realm_obj}) return render(request, 'realm/realm_detailed.jinja2', {'realm': realm_obj})
@login_required
def realm_update(request, id): def realm_update(request, id):
if request.user.is_superuser: if request.user.is_superuser:
realm_obj = Realm.objects.get(id=id) realm_obj = Realm.objects.get(id=id)
@ -59,6 +72,7 @@ def realm_update(request, id):
return render(request, 'realm/realm_update.jinja2', {'realm': realm_obj}) return render(request, 'realm/realm_update.jinja2', {'realm': realm_obj})
@login_required
def realm_user(request, id): def realm_user(request, id):
realm_obj = Realm.objects.get(id=id) realm_obj = Realm.objects.get(id=id)
LdapUser.base_dn = realm_obj.ldap_base_dn LdapUser.base_dn = realm_obj.ldap_base_dn
@ -66,6 +80,7 @@ def realm_user(request, id):
return render(request, 'realm/realm_user.jinja2', {'realm': realm_obj, 'realm_user': realm_users}) return render(request, 'realm/realm_user.jinja2', {'realm': realm_obj, 'realm_user': realm_users})
@login_required
def realm_groups(request, id): def realm_groups(request, id):
realm_obj = Realm.objects.get(id=id) realm_obj = Realm.objects.get(id=id)
LdapGroup.base_dn = realm_obj.ldap_base_dn LdapGroup.base_dn = realm_obj.ldap_base_dn
@ -73,6 +88,7 @@ def realm_groups(request, id):
return render(request, 'realm/realm_groups.jinja2', {'realm': realm_obj, 'realm_groups': realm_groups_obj}) return render(request, 'realm/realm_groups.jinja2', {'realm': realm_obj, 'realm_groups': realm_groups_obj})
@login_required
def userlist(request): def userlist(request):
LdapUser.base_dn = LdapUser.ROOT_DN LdapUser.base_dn = LdapUser.ROOT_DN
LdapGroup.base_dn = LdapGroup.ROOT_DN LdapGroup.base_dn = LdapGroup.ROOT_DN
@ -83,12 +99,14 @@ def userlist(request):
return render(request, 'user/user_list.jinja2', context) return render(request, 'user/user_list.jinja2', context)
@login_required
def user_detail(request, dn): def user_detail(request, dn):
user = LdapUser.objects.get(dn=dn) user = LdapUser.objects.get(dn=dn)
context = {'user': user, } context = {'user': user, }
return render(request, 'user/user_detail.jinja2', context) return render(request, 'user/user_detail.jinja2', context)
@login_required
def user_add(request, realm_id): def user_add(request, realm_id):
realm_obj = Realm.objects.get(id=realm_id) realm_obj = Realm.objects.get(id=realm_id)
# 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
@ -113,12 +131,14 @@ def user_add(request, realm_id):
return render(request, 'user/user_add.jinja2', {'form': form, 'realm': realm_obj}) return render(request, 'user/user_add.jinja2', {'form': form, 'realm': realm_obj})
@login_required
def group_detail(request, dn): def group_detail(request, dn):
group = LdapGroup.objects.get(dn=dn) group = LdapGroup.objects.get(dn=dn)
context = {'group': group, } context = {'group': group, }
return render(request, 'user/group_detail.jinja2', context) return render(request, 'user/group_detail.jinja2', context)
@login_required
def group_add(request, realm_id): def group_add(request, realm_id):
realm_obj = Realm.objects.get(id=realm_id) realm_obj = Realm.objects.get(id=realm_id)
# 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

View File

@ -20,6 +20,5 @@ from django.contrib.auth import views as auth_views
urlpatterns = [ urlpatterns = [
path('', include('account_manager.urls')), path('', include('account_manager.urls')),
path('admin/', admin.site.urls), path('admin/', admin.site.urls),
path('login/', auth_views.LoginView.as_view(), name='login'), path('account/', include('django.contrib.auth.urls')),
path('logout/', auth_views.LogoutView.as_view(), {'next_page': '/'}, name='logout'),
] ]