diff options
author | metamuffin <metamuffin@disroot.org> | 2023-08-05 18:57:41 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2023-08-05 22:45:30 +0200 |
commit | 246fcc704621d7c9626c990ded29b82abab47c8b (patch) | |
tree | 561c96b0c86f30f49e41ec408d616f109d93dd43 /server | |
parent | b22f639737e2ee0152969e2106869538a3009ce6 (diff) | |
download | jellything-246fcc704621d7c9626c990ded29b82abab47c8b.tar jellything-246fcc704621d7c9626c990ded29b82abab47c8b.tar.bz2 jellything-246fcc704621d7c9626c990ded29b82abab47c8b.tar.zst |
move admin interface
Diffstat (limited to 'server')
-rw-r--r-- | server/src/import.rs | 6 | ||||
-rw-r--r-- | server/src/routes/mod.rs | 18 | ||||
-rw-r--r-- | server/src/routes/ui/account/mod.rs | 1 | ||||
-rw-r--r-- | server/src/routes/ui/admin/mod.rs (renamed from server/src/routes/ui/account/admin.rs) | 28 | ||||
-rw-r--r-- | server/src/routes/ui/layout.rs | 9 | ||||
-rw-r--r-- | server/src/routes/ui/mod.rs | 3 |
6 files changed, 31 insertions, 34 deletions
diff --git a/server/src/import.rs b/server/src/import.rs index 872681f..9ffab48 100644 --- a/server/src/import.rs +++ b/server/src/import.rs @@ -7,11 +7,7 @@ use crate::{database::Database, federation::Federation, CONF}; use anyhow::{anyhow, bail, Context, Ok}; use async_recursion::async_recursion; use base64::Engine; -use futures::{ - future::join_all, - stream::{FuturesOrdered, FuturesUnordered}, - StreamExt, -}; +use futures::{stream::FuturesUnordered, StreamExt}; use jellyclient::Session; use jellycommon::{AssetLocation, MediaSource, Node, NodePrivate, RemoteImportOptions}; use log::{debug, error, info}; diff --git a/server/src/routes/mod.rs b/server/src/routes/mod.rs index d6e25b6..1490290 100644 --- a/server/src/routes/mod.rs +++ b/server/src/routes/mod.rs @@ -17,14 +17,14 @@ use std::fs::File; use stream::r_stream; use ui::{ account::{ - admin::{ - r_account_admin_dashboard, r_account_admin_import, r_account_admin_invite, - r_account_admin_remove_invite, r_account_admin_remove_user, - }, r_account_login, r_account_login_post, r_account_logout, r_account_logout_post, r_account_register, r_account_register_post, settings::{r_account_settings, r_account_settings_post}, }, + admin::{ + r_admin_dashboard, r_admin_import, r_admin_invite, r_admin_remove_invite, + r_admin_remove_user, + }, assets::r_item_assets, browser::r_all_items, error::{r_api_catch, r_catch}, @@ -99,11 +99,11 @@ pub fn build_rocket( r_account_register_post, r_account_logout, r_account_logout_post, - r_account_admin_dashboard, - r_account_admin_invite, - r_account_admin_remove_user, - r_account_admin_remove_invite, - r_account_admin_import, + r_admin_dashboard, + r_admin_invite, + r_admin_remove_user, + r_admin_remove_invite, + r_admin_import, r_account_settings, r_account_settings_post, r_api_version, diff --git a/server/src/routes/ui/account/mod.rs b/server/src/routes/ui/account/mod.rs index c04e29a..6bdf65a 100644 --- a/server/src/routes/ui/account/mod.rs +++ b/server/src/routes/ui/account/mod.rs @@ -3,7 +3,6 @@ which is licensed under the GNU Affero General Public License (version 3); see /COPYING. Copyright (C) 2023 metamuffin <metamuffin.org> */ -pub mod admin; pub mod session; pub mod settings; diff --git a/server/src/routes/ui/account/admin.rs b/server/src/routes/ui/admin/mod.rs index f1520b7..0775423 100644 --- a/server/src/routes/ui/account/admin.rs +++ b/server/src/routes/ui/admin/mod.rs @@ -19,8 +19,8 @@ use rand::Rng; use rocket::{form::Form, get, post, FromForm, State}; use std::time::Instant; -#[get("/account/admin/dashboard")] -pub fn r_account_admin_dashboard( +#[get("/admin/dashboard")] +pub fn r_admin_dashboard( session: Session, database: &State<Database>, ) -> MyResult<DynLayoutPage<'static>> { @@ -45,16 +45,16 @@ pub fn admin_dashboard<'a>( h1 { "Admin Panel" } @FlashDisplay { flash: flash.clone() } h2 { "Library" } - form[method="POST", action=uri!(r_account_admin_import())] { + form[method="POST", action=uri!(r_admin_import())] { input[type="submit", value="(Re-)Import Library"]; } h2 { "Invitations" } - form[method="POST", action=uri!(r_account_admin_invite())] { + form[method="POST", action=uri!(r_admin_invite())] { input[type="submit", value="Generate new invite code"]; } ul { @for t in &invites { li { - form[method="POST", action=uri!(r_account_admin_remove_invite())] { + form[method="POST", action=uri!(r_admin_remove_invite())] { span { @t.0 } input[type="text", name="invite", value=&t.0, hidden]; input[type="submit", value="Invalidate"]; @@ -63,7 +63,7 @@ pub fn admin_dashboard<'a>( }} h2 { "Users" } ul { @for (_, u) in &users { - li { form[method="POST", action=uri!(r_account_admin_remove_user())] { + li { form[method="POST", action=uri!(r_admin_remove_user())] { span { @format!("{:?}", u.display_name) " (" @u.name ")" } input[type="text", name="name", value=&u.name, hidden]; input[type="submit", value="Remove(!)"]; @@ -74,8 +74,8 @@ pub fn admin_dashboard<'a>( }) } -#[post("/account/admin/generate_invite")] -pub fn r_account_admin_invite( +#[post("/admin/generate_invite")] +pub fn r_admin_invite( session: Session, database: &State<Database>, ) -> MyResult<DynLayoutPage<'static>> { @@ -94,8 +94,8 @@ pub struct DeleteUser { name: String, } -#[post("/account/admin/remove_user", data = "<form>")] -pub fn r_account_admin_remove_user( +#[post("/admin/remove_user", data = "<form>")] +pub fn r_admin_remove_user( session: Session, database: &State<Database>, form: Form<DeleteUser>, @@ -116,8 +116,8 @@ pub struct DeleteInvite { invite: String, } -#[post("/account/admin/remove_invite", data = "<form>")] -pub fn r_account_admin_remove_invite( +#[post("/admin/remove_invite", data = "<form>")] +pub fn r_admin_remove_invite( session: Session, database: &State<Database>, form: Form<DeleteInvite>, @@ -133,8 +133,8 @@ pub fn r_account_admin_remove_invite( admin_dashboard(database, Some(Ok("Invite invalidated".into()))) } -#[post("/account/admin/import")] -pub async fn r_account_admin_import( +#[post("/admin/import")] +pub async fn r_admin_import( session: Session, database: &State<Database>, federation: &State<Federation>, diff --git a/server/src/routes/ui/layout.rs b/server/src/routes/ui/layout.rs index 7e51e5c..9a29df6 100644 --- a/server/src/routes/ui/layout.rs +++ b/server/src/routes/ui/layout.rs @@ -6,10 +6,11 @@ use crate::{ routes::ui::{ account::{ - admin::rocket_uri_macro_r_account_admin_dashboard, rocket_uri_macro_r_account_login, - rocket_uri_macro_r_account_logout, rocket_uri_macro_r_account_register, - session::Session, settings::rocket_uri_macro_r_account_settings, + rocket_uri_macro_r_account_login, rocket_uri_macro_r_account_logout, + rocket_uri_macro_r_account_register, session::Session, + settings::rocket_uri_macro_r_account_settings, }, + admin::rocket_uri_macro_r_admin_dashboard, browser::rocket_uri_macro_r_all_items, node::rocket_uri_macro_r_library_node, }, @@ -45,7 +46,7 @@ markup::define! { @if let Some(session) = session { span { "Logged in as " } span.username { @session.user.display_name } " " @if session.user.admin { - a[href=uri!(r_account_admin_dashboard())] { "Administration" } " " + a[href=uri!(r_admin_dashboard())] { "Administration" } " " } a[href=uri!(r_account_settings())] { "Settings" } " " a[href=uri!(r_account_logout())] { "Log out" } diff --git a/server/src/routes/ui/mod.rs b/server/src/routes/ui/mod.rs index 5fad2b7..7acc02a 100644 --- a/server/src/routes/ui/mod.rs +++ b/server/src/routes/ui/mod.rs @@ -22,6 +22,8 @@ use std::{ use tokio::{fs::File, io::AsyncRead}; pub mod account; +pub mod admin; +pub mod assets; pub mod browser; pub mod error; pub mod home; @@ -29,7 +31,6 @@ pub mod layout; pub mod node; pub mod player; pub mod style; -pub mod assets; pub struct HtmlTemplate<'a>(pub markup::DynRender<'a>); |