diff options
Diffstat (limited to 'server/src/request_info.rs')
| -rw-r--r-- | server/src/request_info.rs | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/server/src/request_info.rs b/server/src/request_info.rs index 3468c58..0f2fd3a 100644 --- a/server/src/request_info.rs +++ b/server/src/request_info.rs @@ -9,7 +9,8 @@ use crate::{ auth::token_to_user, ui::error::{MyError, MyResult}, }; -use jellycommon::jellyobject::ObjectBuffer; +use anyhow::anyhow; +use jellycommon::jellyobject::{Object, ObjectBuffer}; use jellyui::RenderInfo; use rocket::{ Request, async_trait, @@ -46,6 +47,12 @@ impl<'a> RequestInfo<'a> { state: state.clone(), }) } + pub fn require_user(&'a self) -> MyResult<Object<'a>> { + self.user + .as_ref() + .map(|u| u.as_object()) + .ok_or(MyError(anyhow!("user required"))) + } pub fn render_info(&'a self) -> RenderInfo<'a> { RenderInfo { lang: self.lang, |