mirror of
https://git.pleroma.social/pleroma/relay.git
synced 2025-04-20 01:26:43 +00:00
remove user admin page and move admin pages to subdir
This commit is contained in:
parent
2ee871fd81
commit
c2fd96b758
11 changed files with 7 additions and 172 deletions
|
@ -84,6 +84,7 @@ relay = [
|
|||
"data/*",
|
||||
"frontend/*",
|
||||
"frontend/page/*",
|
||||
"frontend/page/admin/*",
|
||||
"frontend/static/*",
|
||||
]
|
||||
|
||||
|
|
|
@ -31,7 +31,6 @@
|
|||
{{menu_item("Whitelist", "/admin/whitelist")}}
|
||||
{{menu_item("Domain Bans", "/admin/domain_bans")}}
|
||||
{{menu_item("Software Bans", "/admin/software_bans")}}
|
||||
{{menu_item("Users", "/admin/users")}}
|
||||
{{menu_item("Config", "/admin/config")}}
|
||||
{{menu_item("Logout", "/logout")}}
|
||||
|
||||
|
|
|
@ -1,47 +0,0 @@
|
|||
-extends "base.haml"
|
||||
-set page="Users"
|
||||
|
||||
-block content
|
||||
%details.section
|
||||
%summary << Add User
|
||||
#add-item
|
||||
%label(for="new-username") << Username
|
||||
%input(id="new-username" name="username" placeholder="Username" autocomplete="off")
|
||||
|
||||
%label(for="new-password") << Password
|
||||
%input(id="new-password" type="password" placeholder="Password" autocomplete="off")
|
||||
|
||||
%label(for="new-password2") << Password Again
|
||||
%input(id="new-password2" type="password" placeholder="Password Again" autocomplete="off")
|
||||
|
||||
%label(for="new-handle") << Handle
|
||||
%input(id="new-handle" type="email" placeholder="handle" autocomplete="off")
|
||||
|
||||
%input#new-user(type="button" value="Add User")
|
||||
|
||||
%fieldset.section
|
||||
%legend << Users
|
||||
|
||||
.data-table
|
||||
%table#users
|
||||
%thead
|
||||
%tr
|
||||
%td.username << Username
|
||||
%td.handle << Handle
|
||||
%td.date << Joined
|
||||
%td.remove
|
||||
|
||||
%tbody
|
||||
-for user in users
|
||||
%tr(id="{{user.username}}")
|
||||
%td.username
|
||||
=user.username
|
||||
|
||||
%td.handle
|
||||
=user.handle or "n/a"
|
||||
|
||||
%td.date
|
||||
=user.created.strftime("%Y-%m-%d")
|
||||
|
||||
%td.remove
|
||||
%a(href="#" title="Remove User") << ✖
|
|
@ -680,103 +680,6 @@ function page_software_ban() {
|
|||
}
|
||||
|
||||
|
||||
function page_user() {
|
||||
function add_row_listeners(row) {
|
||||
row.querySelector(".remove a").addEventListener("click", async (event) => {
|
||||
event.preventDefault();
|
||||
await del_user(row.id);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
async function add_user() {
|
||||
var elems = {
|
||||
username: document.getElementById("new-username"),
|
||||
password: document.getElementById("new-password"),
|
||||
password2: document.getElementById("new-password2"),
|
||||
handle: document.getElementById("new-handle")
|
||||
}
|
||||
|
||||
var values = {
|
||||
username: elems.username.value.trim(),
|
||||
password: elems.password.value.trim(),
|
||||
password2: elems.password2.value.trim(),
|
||||
handle: elems.handle.value.trim()
|
||||
}
|
||||
|
||||
if (values.username === "" | values.password === "" | values.password2 === "") {
|
||||
toast("Username, password, and password2 are required");
|
||||
return;
|
||||
}
|
||||
|
||||
if (values.password !== values.password2) {
|
||||
toast("Passwords do not match");
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
var user = await request("POST", "v1/user", values);
|
||||
|
||||
} catch (err) {
|
||||
toast(err);
|
||||
return
|
||||
}
|
||||
|
||||
var row = append_table_row(document.querySelector("fieldset.section table"), user.username, {
|
||||
domain: user.username,
|
||||
handle: user.handle ? self.handle : "n/a",
|
||||
date: get_date_string(user.created),
|
||||
remove: `<a href="#" title="Delete User">✖</a>`
|
||||
});
|
||||
|
||||
add_row_listeners(row);
|
||||
|
||||
elems.username.value = null;
|
||||
elems.password.value = null;
|
||||
elems.password2.value = null;
|
||||
elems.handle.value = null;
|
||||
|
||||
document.querySelector("details.section").open = false;
|
||||
toast("Created user", "message");
|
||||
}
|
||||
|
||||
|
||||
async function del_user(username) {
|
||||
try {
|
||||
await request("DELETE", "v1/user", {"username": username});
|
||||
|
||||
} catch (error) {
|
||||
toast(error);
|
||||
return;
|
||||
}
|
||||
|
||||
document.getElementById(username).remove();
|
||||
toast("Deleted user", "message");
|
||||
}
|
||||
|
||||
|
||||
document.querySelector("#new-user").addEventListener("click", async (event) => {
|
||||
await add_user();
|
||||
});
|
||||
|
||||
for (var elem of document.querySelectorAll("#add-item input")) {
|
||||
elem.addEventListener("keydown", async (event) => {
|
||||
if (event.which === 13) {
|
||||
await add_user();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
for (var row of document.querySelector("#users").rows) {
|
||||
if (!row.querySelector(".remove a")) {
|
||||
continue;
|
||||
}
|
||||
|
||||
add_row_listeners(row);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function page_whitelist() {
|
||||
function add_row_listeners(row) {
|
||||
row.querySelector(".remove a").addEventListener("click", async (event) => {
|
||||
|
|
|
@ -709,7 +709,7 @@ async def handle_whitelist_del(app: Application, request: Request, domain: str)
|
|||
return objects.Message("Removed domain from whitelist")
|
||||
|
||||
|
||||
# remove /api/v1/user endpoints?
|
||||
# remove /api/v1/user endpoints in 0.4.0
|
||||
@Route(HttpMethod.GET, "/api/v1/user", "User", True)
|
||||
async def handle_users_get(app: Application, request: Request) -> list[objects.User]:
|
||||
with app.database.session(False) as s:
|
||||
|
|
|
@ -74,7 +74,7 @@ async def handle_admin_instances(
|
|||
if message:
|
||||
context["message"] = message
|
||||
|
||||
return Response.new_template(200, "page/admin-instances.haml", request, context)
|
||||
return Response.new_template(200, "page/admin/instances.haml", request, context)
|
||||
|
||||
|
||||
@register_route(HttpMethod.GET, "/admin/whitelist")
|
||||
|
@ -95,7 +95,7 @@ async def handle_admin_whitelist(
|
|||
if message:
|
||||
context["message"] = message
|
||||
|
||||
return Response.new_template(200, "page/admin-whitelist.haml", request, context)
|
||||
return Response.new_template(200, "page/admin/whitelist.haml", request, context)
|
||||
|
||||
|
||||
@register_route(HttpMethod.GET, "/admin/domain_bans")
|
||||
|
@ -116,7 +116,7 @@ async def handle_admin_instance_bans(
|
|||
if message:
|
||||
context["message"] = message
|
||||
|
||||
return Response.new_template(200, "page/admin-domain_bans.haml", request, context)
|
||||
return Response.new_template(200, "page/admin/domain_bans.haml", request, context)
|
||||
|
||||
|
||||
@register_route(HttpMethod.GET, "/admin/software_bans")
|
||||
|
@ -137,28 +137,7 @@ async def handle_admin_software_bans(
|
|||
if message:
|
||||
context["message"] = message
|
||||
|
||||
return Response.new_template(200, "page/admin-software_bans.haml", request, context)
|
||||
|
||||
|
||||
@register_route(HttpMethod.GET, "/admin/users")
|
||||
async def handle_admin_users(
|
||||
app: Application,
|
||||
request: Request,
|
||||
error: str | None = None,
|
||||
message: str | None = None) -> Response:
|
||||
|
||||
with app.database.session() as conn:
|
||||
context: dict[str, Any] = {
|
||||
"users": tuple(conn.execute("SELECT * FROM users ORDER BY username ASC"))
|
||||
}
|
||||
|
||||
if error:
|
||||
context["error"] = error
|
||||
|
||||
if message:
|
||||
context["message"] = message
|
||||
|
||||
return Response.new_template(200, "page/admin-users.haml", request, context)
|
||||
return Response.new_template(200, "page/admin/software_bans.haml", request, context)
|
||||
|
||||
|
||||
@register_route(HttpMethod.GET, "/admin/config")
|
||||
|
@ -184,7 +163,7 @@ async def handle_admin_config(
|
|||
}
|
||||
}
|
||||
|
||||
return Response.new_template(200, "page/admin-config.haml", request, context)
|
||||
return Response.new_template(200, "page/admin/config.haml", request, context)
|
||||
|
||||
|
||||
@register_route(HttpMethod.GET, "/manifest.json")
|
||||
|
|
Loading…
Reference in a new issue