Tweaks for the desktop client

This commit is contained in:
2024-08-09 17:02:02 +03:00
parent 8eb5be96b3
commit 1c9bd104e0
33 changed files with 217 additions and 144 deletions

View File

@ -9,7 +9,7 @@ pub struct Params {
pub async fn delete(
State(pool): State<Pool>,
claims: Claims,
Json(params): Json<Params>,
Query(params): Query<Params>,
) -> GeneralResult<StatusCode> {
if params.user_id != claims.user_id {
db::folder::get_permissions(params.folder_id, claims.user_id, &pool)

View File

@ -13,13 +13,13 @@ pub async fn get(
State(pool): State<Pool>,
Query(params): Query<Params>,
claims: Claims,
) -> GeneralResult<Json<HashMap<String, PermissionRaw>>> {
) -> GeneralResult<Json<HashMap<i32, PermissionRaw>>> {
db::folder::get_permissions(params.folder_id, claims.user_id, &pool)
.await
.can_manage_guard()?;
let permissions = db::permissions::get_all_for_folder(params.folder_id, &pool)
db::permissions::get_all_for_folder(params.folder_id, &pool)
.await
.handle_internal("Error getting permissions")?;
Ok(Json(permissions))
.handle_internal("Error getting permissions")
.map(Json)
}

View File

@ -1,11 +1,13 @@
use db::folder::FolderWithoutParentId;
use crate::prelude::*;
pub async fn get_top_level(
State(pool): State<Pool>,
claims: Claims,
) -> GeneralResult<Json<Vec<Uuid>>> {
let folders = db::permissions::get_top_level_permitted_folders(claims.user_id, &pool)
) -> GeneralResult<Json<Vec<FolderWithoutParentId>>> {
db::permissions::get_top_level_permitted_folders(claims.user_id, &pool)
.await
.handle_internal("Error reading from the database")?;
Ok(Json(folders))
.handle_internal("Error reading from the database")
.map(Json)
}

View File

@ -18,7 +18,7 @@ pub async fn set(
if params.folder_id == root {
return Err(GeneralError::message(
StatusCode::BAD_REQUEST,
"Cannot delete the root folder",
"Cannot set permissions for the root folder",
));
}
@ -26,6 +26,13 @@ pub async fn set(
.await
.can_manage_guard()?;
if params.user_id == claims.user_id {
return Err(GeneralError::message(
StatusCode::BAD_REQUEST,
"Cannot set your own permissions",
));
}
let folder_info = db::folder::get_by_id(params.folder_id, &pool)
.await
.handle_internal("Error getting folder info")?
@ -33,7 +40,7 @@ pub async fn set(
if folder_info.owner_id == params.user_id {
return Err(GeneralError::message(
StatusCode::BAD_REQUEST,
"Cannot set permissions of the folder owner",
"Cannot set permissions of the folder's owner",
));
}