diff options
author | metamuffin <metamuffin@disroot.org> | 2024-01-20 12:13:20 +0100 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2024-01-20 12:13:20 +0100 |
commit | 730353601db9818d148c85bfe1ecb119abaab7cc (patch) | |
tree | 0e3deafdac53ebc612a04b3631e5cf286c825291 /server/src/routes/userdata.rs | |
parent | 3086e768ab4e64e47a50d7f6a71a815c4f110bd3 (diff) | |
download | jellything-730353601db9818d148c85bfe1ecb119abaab7cc.tar jellything-730353601db9818d148c85bfe1ecb119abaab7cc.tar.bz2 jellything-730353601db9818d148c85bfe1ecb119abaab7cc.tar.zst |
cleanup yesterdays mess
Diffstat (limited to 'server/src/routes/userdata.rs')
-rw-r--r-- | server/src/routes/userdata.rs | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/server/src/routes/userdata.rs b/server/src/routes/userdata.rs index 8803bde..c113bb6 100644 --- a/server/src/routes/userdata.rs +++ b/server/src/routes/userdata.rs @@ -6,7 +6,10 @@ use super::ui::{account::session::Session, error::MyResult, node::DatabaseNodeUserDataExt}; use crate::routes::ui::node::rocket_uri_macro_r_library_node; use anyhow::anyhow; -use jellybase::database::{DataAcid, ReadableTable, Ser, TableExt, T_NODE, T_USER_NODE}; +use jellybase::{ + database::{DataAcid, ReadableTable, Ser, TableExt, T_NODE, T_USER_NODE}, + permission::NodePermissionExt, +}; use jellycommon::user::{NodeUserData, WatchedState}; use rocket::{ get, post, response::Redirect, serde::json::Json, FromFormField, State, UriDisplayQuery, @@ -36,9 +39,10 @@ pub async fn r_player_watched( id: &str, state: UrlWatchedState, ) -> MyResult<Redirect> { - T_NODE.get(db, id)?.ok_or(anyhow!("node does not exist"))?; - - // let key = (session.user.name.clone(), id.to_owned()); + T_NODE + .get(db, id)? + .only_if_permitted(&session.user.permissions) + .ok_or(anyhow!("node does not exist"))?; let txn = db.begin_write()?; let mut user_nodes = txn.open_table(T_USER_NODE)?; @@ -68,7 +72,10 @@ pub async fn r_player_progress( id: &str, t: f64, ) -> MyResult<()> { - T_NODE.get(db, id)?.ok_or(anyhow!("node does not exist"))?; + T_NODE + .get(db, id)? + .only_if_permitted(&session.user.permissions) + .ok_or(anyhow!("node does not exist"))?; let txn = db.begin_write()?; let mut user_nodes = txn.open_table(T_USER_NODE)?; |