aboutsummaryrefslogtreecommitdiff
path: root/server/src/request_info.rs
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2026-02-16 17:50:57 +0100
committermetamuffin <metamuffin@disroot.org>2026-02-16 17:50:57 +0100
commitbe4af57d75cc1e233b4714b18198fb7bde49464d (patch)
tree6e529e748fc1d5c212dcf8033c8158630ca4f4d6 /server/src/request_info.rs
parentbb1822e3e68fe6f699102bfc1659731bdbac1a40 (diff)
downloadjellything-be4af57d75cc1e233b4714b18198fb7bde49464d.tar
jellything-be4af57d75cc1e233b4714b18198fb7bde49464d.tar.bz2
jellything-be4af57d75cc1e233b4714b18198fb7bde49464d.tar.zst
refactor ui responder; add admin import pages
Diffstat (limited to 'server/src/request_info.rs')
-rw-r--r--server/src/request_info.rs14
1 files changed, 13 insertions, 1 deletions
diff --git a/server/src/request_info.rs b/server/src/request_info.rs
index 0f2fd3a..6ed311e 100644
--- a/server/src/request_info.rs
+++ b/server/src/request_info.rs
@@ -10,7 +10,10 @@ use crate::{
ui::error::{MyError, MyResult},
};
use anyhow::anyhow;
-use jellycommon::jellyobject::{Object, ObjectBuffer};
+use jellycommon::{
+ USER_ADMIN,
+ jellyobject::{Object, ObjectBuffer},
+};
use jellyui::RenderInfo;
use rocket::{
Request, async_trait,
@@ -22,6 +25,7 @@ use std::sync::Arc;
pub struct RequestInfo<'a> {
pub lang: &'a str,
pub accept: Accept,
+ pub debug: bool,
pub user: Option<ObjectBuffer>,
pub state: Arc<State>,
}
@@ -45,6 +49,7 @@ impl<'a> RequestInfo<'a> {
accept: Accept::from_request_ut(request),
user: user_from_request(state, request)?,
state: state.clone(),
+ debug: request.query_value::<&str>("debug").is_some(),
})
}
pub fn require_user(&'a self) -> MyResult<Object<'a>> {
@@ -53,6 +58,13 @@ impl<'a> RequestInfo<'a> {
.map(|u| u.as_object())
.ok_or(MyError(anyhow!("user required")))
}
+ pub fn require_admin(&'a self) -> MyResult<Object<'a>> {
+ let user = self.require_user()?;
+ if !user.has(USER_ADMIN.0) {
+ Err(anyhow!("admin required"))?
+ }
+ Ok(user)
+ }
pub fn render_info(&'a self) -> RenderInfo<'a> {
RenderInfo {
lang: self.lang,