aboutsummaryrefslogtreecommitdiff
path: root/server/src/request_info.rs
diff options
context:
space:
mode:
Diffstat (limited to 'server/src/request_info.rs')
-rw-r--r--server/src/request_info.rs18
1 files changed, 7 insertions, 11 deletions
diff --git a/server/src/request_info.rs b/server/src/request_info.rs
index 442c7fb..0adfe96 100644
--- a/server/src/request_info.rs
+++ b/server/src/request_info.rs
@@ -10,10 +10,7 @@ use crate::{
ui::error::{MyError, MyResult},
};
use anyhow::anyhow;
-use jellycommon::{
- USER_ADMIN,
- jellyobject::{Object, ObjectBuffer},
-};
+use jellycommon::{USER_ADMIN, User, jellyobject::Object};
use jellyui::{Page, RenderInfo, Scaffold};
use rocket::{
Request, async_trait,
@@ -27,7 +24,7 @@ pub struct RequestInfo<'a> {
pub lang: &'a str,
pub accept: Accept,
pub debug: &'a str,
- pub user: Option<ObjectBuffer>,
+ pub user: Option<Box<User>>,
pub state: Arc<State>,
pub flash: Option<FlashMessage<'a>>,
}
@@ -59,13 +56,12 @@ impl<'a> RequestInfo<'a> {
flash: FlashMessage::from_request(request).await.succeeded(),
})
}
- pub fn require_user(&'a self) -> MyResult<Object<'a>> {
+ pub fn require_user(&'a self) -> MyResult<&'a Object> {
self.user
- .as_ref()
- .map(|u| u.as_object())
+ .as_deref()
.ok_or(MyError(anyhow!("user required")))
}
- pub fn require_admin(&'a self) -> MyResult<Object<'a>> {
+ pub fn require_admin(&'a self) -> MyResult<&'a Object> {
let user = self.require_user()?;
if !user.has(USER_ADMIN.0) {
Err(anyhow!("admin required"))?
@@ -76,7 +72,7 @@ impl<'a> RequestInfo<'a> {
RenderInfo {
lang: self.lang,
status_message: None,
- user: self.user.as_ref().map(|u| u.as_object()),
+ user: self.user.as_deref(),
config: &self.state.config.ui,
message: self.flash.as_ref().map(|f| (f.kind(), f.message())),
}
@@ -129,7 +125,7 @@ fn accept_language<'a>(request: &'a Request<'_>) -> &'a str {
.unwrap_or("en")
}
-fn user_from_request(state: &State, req: &Request<'_>) -> Result<Option<ObjectBuffer>, MyError> {
+fn user_from_request(state: &State, req: &Request<'_>) -> Result<Option<Box<User>>, MyError> {
let Some(token) = req
.query_value("session")
.map(|e| e.unwrap())