Tweaks for the desktop client
This commit is contained in:
@ -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)
|
||||
|
@ -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)
|
||||
}
|
||||
|
@ -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)
|
||||
}
|
||||
|
@ -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",
|
||||
));
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user