mirror of
https://github.com/eduardogsilva/routerfleet.git
synced 2025-08-30 23:00:21 +02:00
import user_manager and accounts from project wireguard_webadmin
This commit is contained in:
parent
757fa6a1e1
commit
c104a12df0
28 changed files with 618 additions and 4 deletions
68
user_manager/views.py
Normal file
68
user_manager/views.py
Normal file
|
@ -0,0 +1,68 @@
|
|||
from django.contrib.auth.decorators import login_required
|
||||
from django.shortcuts import render, redirect, get_object_or_404
|
||||
from user_manager.models import UserAcl
|
||||
from .forms import UserAclForm
|
||||
from django.contrib.auth.models import User
|
||||
from django.contrib import messages
|
||||
from django.contrib.sessions.models import Session
|
||||
|
||||
|
||||
@login_required
|
||||
def view_user_list(request):
|
||||
if not UserAcl.objects.filter(user=request.user).filter(user_level__gte=50).exists():
|
||||
return render(request, 'access_denied.html', {'page_title': 'Access Denied'})
|
||||
page_title = 'User Manager'
|
||||
user_acl_list = UserAcl.objects.all().order_by('user__username')
|
||||
context = {'page_title': page_title, 'user_acl_list': user_acl_list}
|
||||
return render(request, 'user_manager/list.html', context)
|
||||
|
||||
|
||||
@login_required
|
||||
def view_manage_user(request):
|
||||
if not UserAcl.objects.filter(user=request.user).filter(user_level__gte=50).exists():
|
||||
return render(request, 'access_denied.html', {'page_title': 'Access Denied'})
|
||||
user_acl = None
|
||||
user = None
|
||||
if 'uuid' in request.GET:
|
||||
user_acl = get_object_or_404(UserAcl, uuid=request.GET['uuid'])
|
||||
user = user_acl.user
|
||||
form = UserAclForm(instance=user, initial={'user_level': user_acl.user_level}, user_id=user.id)
|
||||
page_title = 'Edit User ' + user.username
|
||||
if request.GET.get('action') == 'delete':
|
||||
username = user.username
|
||||
if request.GET.get('confirmation') == username:
|
||||
user.delete()
|
||||
messages.success(request, 'User deleted|The user ' + username + ' has been deleted.')
|
||||
return redirect('/user/list/')
|
||||
|
||||
return redirect('/user/list/')
|
||||
else:
|
||||
form = UserAclForm()
|
||||
page_title = 'Add User'
|
||||
|
||||
if request.method == 'POST':
|
||||
if user_acl:
|
||||
form = UserAclForm(request.POST, instance=user, user_id=user.id)
|
||||
else:
|
||||
form = UserAclForm(request.POST)
|
||||
|
||||
if form.is_valid():
|
||||
form.save()
|
||||
if form.cleaned_data.get('password1'):
|
||||
user_disconnected = False
|
||||
if user:
|
||||
for session in Session.objects.all():
|
||||
if str(user.id) == session.get_decoded().get('_auth_user_id'):
|
||||
session.delete()
|
||||
if not user_disconnected:
|
||||
messages.warning(request,
|
||||
'User Disconnected|The user ' + user.username + ' has been disconnected.')
|
||||
user_disconnected = True
|
||||
if user_acl:
|
||||
messages.success(request,
|
||||
'User updated|The user ' + form.cleaned_data['username'] + ' has been updated.')
|
||||
else:
|
||||
messages.success(request, 'User added|The user ' + form.cleaned_data['username'] + ' has been added.')
|
||||
return redirect('/user/list/')
|
||||
|
||||
return render(request, 'user_manager/manage_user.html', {'form': form, 'page_title': page_title, 'user_acl': user_acl})
|
Loading…
Add table
Add a link
Reference in a new issue