This commit is contained in:
2024-07-31 19:17:59 +03:00
parent ea718be066
commit 32d207a991
20 changed files with 113 additions and 79 deletions

View File

@ -7,18 +7,18 @@ pub struct Params {
}
pub async fn delete(
State(pool): State<Pool>,
claims: Claims,
State(state): State<AppState>,
Json(params): Json<Params>,
) -> Result<StatusCode, StatusCode> {
if params.user_id != claims.user_id {
db::folder::get_permissions(params.folder_id, claims.user_id, &state.pool)
db::folder::get_permissions(params.folder_id, claims.user_id, &pool)
.await
.handle_internal()?
.can_manage_guard()?;
}
db::permissions::delete_for_folder(params.folder_id, params.user_id, &state.pool)
db::permissions::delete_for_folder(params.folder_id, params.user_id, &pool)
.await
.handle_internal()?;

View File

@ -10,16 +10,16 @@ pub struct Params {
}
pub async fn get(
State(pool): State<Pool>,
Query(params): Query<Params>,
claims: Claims,
State(state): State<AppState>,
) -> Result<Json<HashMap<String, PermissionRaw>>, StatusCode> {
db::folder::get_permissions(params.folder_id, claims.user_id, &state.pool)
db::folder::get_permissions(params.folder_id, claims.user_id, &pool)
.await
.handle_internal()?
.can_manage_guard()?;
let permissions = db::permissions::get_all_for_folder(params.folder_id, &state.pool)
let permissions = db::permissions::get_all_for_folder(params.folder_id, &pool)
.await
.handle_internal()?;
Ok(Json(permissions))

View File

@ -1,10 +1,10 @@
use crate::prelude::*;
pub async fn get_top_level(
State(state): State<AppState>,
State(pool): State<Pool>,
claims: Claims,
) -> Result<Json<Vec<Uuid>>, StatusCode> {
let folders = db::permissions::get_top_level_permitted_folders(claims.user_id, &state.pool)
let folders = db::permissions::get_top_level_permitted_folders(claims.user_id, &pool)
.await
.handle_internal()?;
Ok(Json(folders))

View File

@ -11,17 +11,17 @@ pub struct Params {
pub async fn set(
claims: Claims,
State(state): State<AppState>,
State(pool): State<Pool>,
Json(params): Json<Params>,
) -> Result<StatusCode, StatusCode> {
let root = db::folder::get_root(claims.user_id, &state.pool)
let root = db::folder::get_root(claims.user_id, &pool)
.await
.handle_internal()?;
if params.folder_id == root {
return Err(StatusCode::BAD_REQUEST);
}
db::folder::get_permissions(params.folder_id, claims.user_id, &state.pool)
db::folder::get_permissions(params.folder_id, claims.user_id, &pool)
.await
.handle_internal()?
.can_manage_guard()?;
@ -30,7 +30,7 @@ pub async fn set(
params.user_id,
params.folder_id,
params.permission_type,
&state.pool,
&pool,
)
.await
.handle_internal()?;