mirror of
https://gitlab.com/comunic/comunicapiv3
synced 2025-09-25 14:19:45 +00:00
Administrators can get information about a single user
This commit is contained in:
@@ -2,12 +2,13 @@
|
||||
//!
|
||||
//! @author Pierre Hubert
|
||||
|
||||
use crate::data::http_request_handler::HttpRequestHandler;
|
||||
use crate::routes::RequestResult;
|
||||
use crate::data::base_request_handler::BaseRequestHandler;
|
||||
use crate::api_data::admin::admin_search_user_result_api::AdminSearchUserResult;
|
||||
use crate::api_data::admin::admin_user_info_api::AdminUserInfoAPI;
|
||||
use crate::constants::admin::AdminRole;
|
||||
use crate::data::base_request_handler::BaseRequestHandler;
|
||||
use crate::data::http_request_handler::HttpRequestHandler;
|
||||
use crate::helpers::user_helper;
|
||||
use crate::api_data::admin::admin_search_user_result::AdminSearchUserResult;
|
||||
use crate::routes::RequestResult;
|
||||
|
||||
/// Search for user
|
||||
pub fn search(r: &mut HttpRequestHandler) -> RequestResult {
|
||||
@@ -19,4 +20,14 @@ pub fn search(r: &mut HttpRequestHandler) -> RequestResult {
|
||||
let results = user_helper::search_user_admin(&name, &email, 50)?;
|
||||
|
||||
r.set_response(results.into_iter().map(AdminSearchUserResult::new).collect::<Vec<_>>())
|
||||
}
|
||||
|
||||
/// Get information about a single user
|
||||
pub fn get_single(r: &mut HttpRequestHandler) -> RequestResult {
|
||||
r.check_admin_has_role(AdminRole::MANAGE_USERS)?;
|
||||
|
||||
let user_id = r.post_user_id("user_id")?;
|
||||
let user = user_helper::find_user_by_id(&user_id)?;
|
||||
|
||||
r.set_response(AdminUserInfoAPI::new(user))
|
||||
}
|
@@ -19,7 +19,7 @@ use crate::data::new_custom_emoji::NewCustomEmoji;
|
||||
use crate::data::new_data_conservation_policy::NewDataConservationPolicy;
|
||||
use crate::data::new_notifications_settings::NewNotificationsSettings;
|
||||
use crate::data::security_settings::{SecurityQuestion, SecuritySettings};
|
||||
use crate::data::user::{AccountImageVisibility, UserPageStatus};
|
||||
use crate::data::user::{AccountImageVisibility, UserPageVisibility};
|
||||
use crate::helpers::{account_helper, custom_emojies_helper, user_helper};
|
||||
use crate::helpers::virtual_directory_helper::VirtualDirType;
|
||||
use crate::routes::RequestResult;
|
||||
@@ -35,9 +35,9 @@ pub fn get_general(r: &mut HttpRequestHandler) -> RequestResult {
|
||||
/// Set the general settings of the user
|
||||
pub fn set_general(r: &mut HttpRequestHandler) -> RequestResult {
|
||||
let page_status = match (r.post_bool("isPublic")?, r.post_bool("isOpen")?) {
|
||||
(true, true) => UserPageStatus::OPEN,
|
||||
(true, false) => UserPageStatus::PUBLIC,
|
||||
(_, _) => UserPageStatus::PRIVATE,
|
||||
(true, true) => UserPageVisibility::OPEN,
|
||||
(true, false) => UserPageVisibility::PUBLIC,
|
||||
(_, _) => UserPageVisibility::PRIVATE,
|
||||
};
|
||||
|
||||
let personal_website = r.post_url_opt("personnalWebsite", false)?;
|
||||
|
Reference in New Issue
Block a user