1
0
mirror of https://gitlab.com/comunic/comunicapiv3 synced 2024-11-26 15:29:21 +00:00

A user can remove its group's membership

This commit is contained in:
Pierre HUBERT 2020-06-29 08:55:36 +02:00
parent 5906c53484
commit f219b0f4fa
2 changed files with 17 additions and 0 deletions

View File

@ -337,4 +337,19 @@ pub fn get_membership(r: &mut HttpRequestHandler) -> RequestResult {
let membership = groups_helper::get_membership(&group_id, Some(user_id))?; let membership = groups_helper::get_membership(&group_id, Some(user_id))?;
r.set_response(GroupMemberAPI::new(&membership)) r.set_response(GroupMemberAPI::new(&membership))
}
/// Delete the membership of a user over a group
pub fn remove_membership(r: &mut HttpRequestHandler) -> RequestResult {
let group_id = r.post_group_id_with_access("groupID", GroupAccessLevel::LIMITED_ACCESS)?;
if groups_helper::is_last_admin(&group_id, &r.user_id()?)? {
r.forbidden("You are the last administrator of this group!".to_string())?;
}
groups_helper::delete_member(&group_id, &r.user_id()?)?;
// TODO : delete group membership notifications
r.success("Your membership has been successfully deleted!")
} }

View File

@ -168,6 +168,8 @@ pub fn get_routes() -> Vec<Route> {
Route::post("/groups/get_membership", Box::new(groups_controller::get_membership)), Route::post("/groups/get_membership", Box::new(groups_controller::get_membership)),
Route::post("/groups/remove_membership", Box::new(groups_controller::remove_membership)),
// Virtual directory controller // Virtual directory controller
Route::post("/user/findbyfolder", Box::new(virtual_directory_controller::find_user)), Route::post("/user/findbyfolder", Box::new(virtual_directory_controller::find_user)),