добавил рабочие ссылки на просмотр списка аккаунтов и каждого отдельного аккаунта
This commit is contained in:
parent
ed37bcbfc2
commit
a611b1784d
@ -44,7 +44,7 @@
|
||||
<tbody>
|
||||
{% for u in users %}
|
||||
<tr>
|
||||
<td>{{ u.login }}</td>
|
||||
<td><a href="{% url 'account-view' %}?username={{ u.login }}"> {{ u.login }} </a></td>
|
||||
<td>{{ u.is_superuser }}</td>
|
||||
<td>{{ u.last_login }}</td>
|
||||
<td>{{ u.last_password_change }}</td>
|
||||
|
@ -1,23 +1,11 @@
|
||||
{% extends 'base.html' %}
|
||||
{% load static %}
|
||||
|
||||
{% block title %} Просмотр аккаунта {{ view_user.login }} {% endblock %}
|
||||
|
||||
{% block styles %}
|
||||
<style>
|
||||
.table-wrapper {
|
||||
overflow-x: auto;
|
||||
}
|
||||
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
}
|
||||
table, th, td {
|
||||
padding: 5px;
|
||||
border: 2px solid var(--bg-selected);
|
||||
}
|
||||
thead {
|
||||
background: var(--brand-bg);
|
||||
}
|
||||
</style>
|
||||
{% endblock %}
|
||||
|
||||
@ -26,12 +14,17 @@
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
{% if have_permissions %}
|
||||
<p>Статус администратора: {{ view_user.is_superuser }}</p>
|
||||
<p>Последний вход: {{ view_user.last_login }}</p>
|
||||
<p>Последнее обновление пароля: {{ view_user.last_password_change }}
|
||||
{% if perms.users.change_user or view_user.login == user.login %}
|
||||
(<a href="{% url 'change-password' %}">сменить</a>)
|
||||
{% endif %}
|
||||
</p>
|
||||
<p>Зарегистрирован: {{ view_user.registered }}</p>
|
||||
|
||||
|
||||
|
||||
{% else %}
|
||||
<h2>Недостаточно прав для просмотра страницы</h2>
|
||||
<p>Для просмотра списка пользователей необходимо иметь статус администратора.</p>
|
||||
{% if perms.users.delete_user %}
|
||||
<p><a href="{% url 'delete-account' view_user.login %}" class="value-bad">Удалить аккаунт</a></p>
|
||||
{% endif %}
|
||||
|
||||
{% endblock %}
|
||||
|
@ -3,7 +3,6 @@
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="description" content="Состояние резервуара, насосной станции и график резервуара">
|
||||
<title> {% block title %} Мониторинг резервуара {% endblock %} </title>
|
||||
{% load static %}
|
||||
<link rel="stylesheet" type="text/css" href="{% static 'css/style.css' %}">
|
||||
@ -15,9 +14,9 @@
|
||||
{% block header %}
|
||||
<h1>{% block header-title %} Мониторинг водозаборного узла {% endblock %}</h1>
|
||||
{% if user.is_authenticated %}
|
||||
<div>
|
||||
<div id="header-login-block">
|
||||
<span> {{ user.login }} </span>
|
||||
<a href="/account/logout">Выход</a>
|
||||
<a href="{% url 'logout' %}">Выход</a>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
@ -2,6 +2,8 @@
|
||||
{% load static %}
|
||||
|
||||
{% block head %}
|
||||
<meta name="description" content="Состояние резервуара, насосной станции и график резервуара">
|
||||
|
||||
<script src="{% static 'js/chart-4.4.1.umd.js' %}"></script>
|
||||
<script src="{% static 'js/moment-2.js' %}"></script>
|
||||
<script src="{% static 'js/chartjs-adapter-moment.js' %}"></script>
|
||||
@ -96,6 +98,10 @@
|
||||
<label for="settings-chart-time">Период на графике (дней): </label>
|
||||
<input id="settings-chart-time" type="number" min="1" max="31">
|
||||
</p>
|
||||
<p>Просмотр профиля: <a href="{% url 'account-view' %}">{{ user.login }}</a></p>
|
||||
{% if perms.users.view_user %}
|
||||
<p><a href="{% url 'accounts-list' %}"> Просмотр всех аккаунтов </a></p>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -46,7 +46,6 @@ class User(AbstractBaseUser):
|
||||
permissions = {
|
||||
'view_logs': 0,
|
||||
'view_pump_stats': 1,
|
||||
'change_users': 1,
|
||||
|
||||
'users.add_user': 1,
|
||||
'users.change_user': 1,
|
||||
|
@ -23,5 +23,7 @@ urlpatterns = [
|
||||
path('login', views.view_login, name='login'),
|
||||
path('logout', views.view_logout, name='logout'),
|
||||
path('list', views.view_list, name='accounts-list'),
|
||||
path('view', views.view_account, name='account-view'),
|
||||
path('change-password', views.default_view, name='change-password'),
|
||||
path('delete/<str:username>', views.default_view, name='delete-account'),
|
||||
]
|
||||
|
@ -1,6 +1,6 @@
|
||||
import os
|
||||
|
||||
from django.http import HttpResponse, HttpResponseRedirect, HttpResponseBadRequest
|
||||
from django.http import HttpResponse, HttpResponseRedirect, HttpResponseBadRequest, Http404
|
||||
from django.shortcuts import render
|
||||
# from django.db.models import Manager
|
||||
from django.contrib.auth import authenticate, login, logout
|
||||
@ -9,7 +9,7 @@ from .models import User
|
||||
from .forms import UserRegisterForm
|
||||
|
||||
|
||||
def default_view(request):
|
||||
def default_view(request, *args, **kwargs):
|
||||
return HttpResponse('Not implemented!')
|
||||
|
||||
|
||||
@ -53,6 +53,20 @@ def view_login(request):
|
||||
return HttpResponseBadRequest()
|
||||
|
||||
|
||||
@login_required
|
||||
def view_account(request):
|
||||
view_user = request.user
|
||||
if 'username' in request.GET:
|
||||
if request.user.has_perm('users.view_user'):
|
||||
try:
|
||||
view_user = User.objects.get_by_natural_key(request.GET['username'])
|
||||
except:
|
||||
return Http404()
|
||||
else:
|
||||
raise PermissionError()
|
||||
return render(request, 'account/view.html', {'view_user': view_user})
|
||||
|
||||
|
||||
@login_required
|
||||
@permission_required(perm='users.add_user', raise_exception=True)
|
||||
def view_register(request):
|
||||
|
Loading…
x
Reference in New Issue
Block a user