forked from mirrors/bookwyrm
Adds user admin view
This commit is contained in:
parent
0dd8b33991
commit
1542866b6c
6 changed files with 29 additions and 8 deletions
|
@ -8,7 +8,7 @@
|
||||||
|
|
||||||
{% block panel %}
|
{% block panel %}
|
||||||
<div class="block">
|
<div class="block">
|
||||||
<a href="{% url 'settings-reports' %}">{% trans "Back to reports" %}</a>
|
<a href="{% url 'settings-users' %}">{% trans "Back to users" %}</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{% include 'user_admin/user_info.html' with user=user %}
|
{% include 'user_admin/user_info.html' with user=user %}
|
||||||
|
|
|
@ -41,7 +41,7 @@
|
||||||
</tr>
|
</tr>
|
||||||
{% for user in users %}
|
{% for user in users %}
|
||||||
<tr>
|
<tr>
|
||||||
<td>{{ user.username }}</td>
|
<td><a href="{% url 'settings-user' user.id %}">{{ user.username }}</a></td>
|
||||||
<td>{{ user.created_date }}</td>
|
<td>{{ user.created_date }}</td>
|
||||||
<td>{{ user.last_active_date }}</td>
|
<td>{{ user.last_active_date }}</td>
|
||||||
<td>{% if user.is_active %}{% trans "Active" %}{% else %}{% trans "Inactive" %}{% endif %}</td>
|
<td>{% if user.is_active %}{% trans "Active" %}{% else %}{% trans "Inactive" %}{% endif %}</td>
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
<p class="mr-1">
|
<p class="mr-1">
|
||||||
<a class="button" href="{% url 'direct-messages-user' user.username %}">{% trans "Send direct message" %}</a>
|
<a class="button" href="{% url 'direct-messages-user' user.username %}">{% trans "Send direct message" %}</a>
|
||||||
</p>
|
</p>
|
||||||
<form name="deactivate" method="post" action="{% url 'settings-report-deactivate' report.id %}">
|
<form name="deactivate" method="post" action="">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
{% if user.is_active %}
|
{% if user.is_active %}
|
||||||
<button type="submit" class="button is-danger is-light">{% trans "Deactivate user" %}</button>
|
<button type="submit" class="button is-danger is-light">{% trans "Deactivate user" %}</button>
|
||||||
|
|
|
@ -51,13 +51,20 @@ urlpatterns = [
|
||||||
r"^password-reset/(?P<code>[A-Za-z0-9]+)/?$", views.PasswordReset.as_view()
|
r"^password-reset/(?P<code>[A-Za-z0-9]+)/?$", views.PasswordReset.as_view()
|
||||||
),
|
),
|
||||||
# admin
|
# admin
|
||||||
re_path(r"^settings/site-settings", views.Site.as_view(), name="settings-site"),
|
re_path(r"^settings/site-settings/?$", views.Site.as_view(), name="settings-site"),
|
||||||
re_path(
|
re_path(
|
||||||
r"^settings/email-preview",
|
r"^settings/email-preview/?$",
|
||||||
views.site.email_preview,
|
views.site.email_preview,
|
||||||
name="settings-email-preview",
|
name="settings-email-preview",
|
||||||
),
|
),
|
||||||
re_path(r"^settings/users", views.UserAdmin.as_view(), name="settings-users"),
|
re_path(
|
||||||
|
r"^settings/users/?$", views.UserAdminList.as_view(), name="settings-users"
|
||||||
|
),
|
||||||
|
re_path(
|
||||||
|
r"^settings/users/(?P<user>\d+)/?$",
|
||||||
|
views.UserAdmin.as_view(),
|
||||||
|
name="settings-user"
|
||||||
|
),
|
||||||
re_path(
|
re_path(
|
||||||
r"^settings/federation/?$",
|
r"^settings/federation/?$",
|
||||||
views.Federation.as_view(),
|
views.Federation.as_view(),
|
||||||
|
|
|
@ -37,5 +37,5 @@ from .status import CreateStatus, DeleteStatus, DeleteAndRedraft
|
||||||
from .tag import Tag, AddTag, RemoveTag
|
from .tag import Tag, AddTag, RemoveTag
|
||||||
from .updates import get_notification_count, get_unread_status_count
|
from .updates import get_notification_count, get_unread_status_count
|
||||||
from .user import User, EditUser, Followers, Following
|
from .user import User, EditUser, Followers, Following
|
||||||
from .user_admin import UserAdmin
|
from .user_admin import UserAdmin, UserAdminList
|
||||||
from .wellknown import *
|
from .wellknown import *
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
""" manage user """
|
""" manage user """
|
||||||
from django.contrib.auth.decorators import login_required, permission_required
|
from django.contrib.auth.decorators import login_required, permission_required
|
||||||
from django.core.paginator import Paginator
|
from django.core.paginator import Paginator
|
||||||
|
from django.shortcuts import get_object_or_404
|
||||||
from django.template.response import TemplateResponse
|
from django.template.response import TemplateResponse
|
||||||
from django.utils.decorators import method_decorator
|
from django.utils.decorators import method_decorator
|
||||||
from django.views import View
|
from django.views import View
|
||||||
|
@ -15,7 +16,7 @@ from bookwyrm.settings import PAGE_LENGTH
|
||||||
permission_required("bookwyrm.moderate_users", raise_exception=True),
|
permission_required("bookwyrm.moderate_users", raise_exception=True),
|
||||||
name="dispatch",
|
name="dispatch",
|
||||||
)
|
)
|
||||||
class UserAdmin(View):
|
class UserAdminList(View):
|
||||||
""" admin view of users on this server """
|
""" admin view of users on this server """
|
||||||
|
|
||||||
def get(self, request):
|
def get(self, request):
|
||||||
|
@ -55,3 +56,16 @@ class UserAdmin(View):
|
||||||
"server": server,
|
"server": server,
|
||||||
}
|
}
|
||||||
return TemplateResponse(request, "user_admin/user_admin.html", data)
|
return TemplateResponse(request, "user_admin/user_admin.html", data)
|
||||||
|
|
||||||
|
@method_decorator(login_required, name="dispatch")
|
||||||
|
@method_decorator(
|
||||||
|
permission_required("bookwyrm.moderate_users", raise_exception=True),
|
||||||
|
name="dispatch",
|
||||||
|
)
|
||||||
|
class UserAdmin(View):
|
||||||
|
""" moderate an individual user """
|
||||||
|
|
||||||
|
def get(self, request, user):
|
||||||
|
""" user view """
|
||||||
|
user = get_object_or_404(models.User, id=user)
|
||||||
|
return TemplateResponse(request, "user_admin/user.html", {"user": user})
|
||||||
|
|
Loading…
Reference in a new issue