mirror of
https://github.com/retspen/webvirtcloud
synced 2025-07-31 12:41:08 +00:00
Added admin application
- Manage users - Manage groups - Manage logs
This commit is contained in:
parent
38befa4362
commit
27f62dff6c
38 changed files with 933 additions and 742 deletions
171
admin/views.py
Normal file
171
admin/views.py
Normal file
|
@ -0,0 +1,171 @@
|
|||
from django.conf import settings
|
||||
from django.contrib.auth.decorators import user_passes_test
|
||||
from django.contrib.auth.models import Group, User
|
||||
from django.core.paginator import Paginator
|
||||
from django.shortcuts import get_object_or_404, redirect, render
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
from accounts.models import UserAttributes
|
||||
from logs.models import Logs
|
||||
|
||||
from . import forms
|
||||
from .decorators import superuser_only
|
||||
|
||||
|
||||
@superuser_only
|
||||
def group_list(request):
|
||||
groups = Group.objects.all()
|
||||
return render(
|
||||
request,
|
||||
'admin/group_list.html',
|
||||
{
|
||||
'groups': groups,
|
||||
},
|
||||
)
|
||||
|
||||
|
||||
@superuser_only
|
||||
def group_create(request):
|
||||
form = forms.GroupForm(request.POST or None)
|
||||
if form.is_valid():
|
||||
form.save()
|
||||
return redirect('admin:group_list')
|
||||
return render(
|
||||
request,
|
||||
'admin/common/form.html',
|
||||
{
|
||||
'form': form,
|
||||
'title': _('Create Group'),
|
||||
},
|
||||
)
|
||||
|
||||
|
||||
@superuser_only
|
||||
def group_update(request, pk):
|
||||
group = get_object_or_404(Group, pk=pk)
|
||||
form = forms.GroupForm(request.POST or None, instance=group)
|
||||
if form.is_valid():
|
||||
form.save()
|
||||
return redirect('admin:group_list')
|
||||
|
||||
return render(
|
||||
request,
|
||||
'admin/common/form.html',
|
||||
{
|
||||
'form': form,
|
||||
'title': _('Update Group'),
|
||||
},
|
||||
)
|
||||
|
||||
|
||||
@superuser_only
|
||||
def group_delete(request, pk):
|
||||
group = get_object_or_404(Group, pk=pk)
|
||||
if request.method == 'POST':
|
||||
group.delete()
|
||||
return redirect('admin:group_list')
|
||||
|
||||
return render(
|
||||
request,
|
||||
'admin/common/confirm_delete.html',
|
||||
{'object': group},
|
||||
)
|
||||
|
||||
|
||||
@superuser_only
|
||||
def user_list(request):
|
||||
users = User.objects.all()
|
||||
return render(
|
||||
request,
|
||||
'admin/user_list.html',
|
||||
{
|
||||
'users': users,
|
||||
'title': _('Users'),
|
||||
},
|
||||
)
|
||||
|
||||
|
||||
@superuser_only
|
||||
def user_create(request):
|
||||
user_form = forms.UserCreateForm(request.POST or None)
|
||||
attributes_form = forms.UserAttributesForm(request.POST or None)
|
||||
if user_form.is_valid() and attributes_form.is_valid():
|
||||
user = user_form.save()
|
||||
password = user_form.cleaned_data['password']
|
||||
user.set_password(password)
|
||||
user.save()
|
||||
attributes = attributes_form.save(commit=False)
|
||||
attributes.user = user
|
||||
attributes.save()
|
||||
return redirect('admin:user_list')
|
||||
|
||||
return render(
|
||||
request,
|
||||
'admin/user_form.html',
|
||||
{
|
||||
'user_form': user_form,
|
||||
'attributes_form': attributes_form,
|
||||
'title': _('Create User')
|
||||
},
|
||||
)
|
||||
|
||||
|
||||
@superuser_only
|
||||
def user_update(request, pk):
|
||||
user = get_object_or_404(User, pk=pk)
|
||||
attributes = UserAttributes.objects.get(user=user)
|
||||
user_form = forms.UserForm(request.POST or None, instance=user)
|
||||
attributes_form = forms.UserAttributesForm(request.POST or None, instance=attributes)
|
||||
if user_form.is_valid() and attributes_form.is_valid():
|
||||
user_form.save()
|
||||
attributes_form.save()
|
||||
return redirect('admin:user_list')
|
||||
|
||||
return render(
|
||||
request,
|
||||
'admin/user_form.html',
|
||||
{
|
||||
'user_form': user_form,
|
||||
'attributes_form': attributes_form,
|
||||
'title': _('Update User')
|
||||
},
|
||||
)
|
||||
|
||||
|
||||
@superuser_only
|
||||
def user_delete(request, pk):
|
||||
user = get_object_or_404(User, pk=pk)
|
||||
if request.method == 'POST':
|
||||
user.delete()
|
||||
return redirect('admin:user_list')
|
||||
|
||||
return render(
|
||||
request,
|
||||
'admin/common/confirm_delete.html',
|
||||
{'object': user},
|
||||
)
|
||||
|
||||
|
||||
@superuser_only
|
||||
def user_block(request, pk):
|
||||
user: User = get_object_or_404(User, pk=pk)
|
||||
user.is_active = False
|
||||
user.save()
|
||||
return redirect('admin:user_list')
|
||||
|
||||
|
||||
@superuser_only
|
||||
def user_unblock(request, pk):
|
||||
user: User = get_object_or_404(User, pk=pk)
|
||||
user.is_active = True
|
||||
user.save()
|
||||
return redirect('admin:user_list')
|
||||
|
||||
|
||||
@superuser_only
|
||||
def logs(request):
|
||||
l = Logs.objects.order_by('-date')
|
||||
paginator = Paginator(l, settings.LOGS_PER_PAGE)
|
||||
page = request.GET.get('page', 1)
|
||||
logs = paginator.page(page)
|
||||
return render(request, 'admin/logs.html', {'logs': logs})
|
Loading…
Add table
Add a link
Reference in a new issue