mirror of
https://gitlab.com/comunic/comunicapiv3
synced 2025-07-03 14:43:28 +00:00
Administrators can get information about a single user
This commit is contained in:
54
src/api_data/admin/admin_user_info_api.rs
Normal file
54
src/api_data/admin/admin_user_info_api.rs
Normal file
@ -0,0 +1,54 @@
|
||||
//! # Admin API : User information
|
||||
//!
|
||||
//! Get information about a single user
|
||||
//!
|
||||
//! @author Pierre Hubert
|
||||
|
||||
use crate::data::user::User;
|
||||
|
||||
#[derive(serde::Serialize)]
|
||||
pub struct AdminUserInfoAPI {
|
||||
id: u64,
|
||||
first_name: String,
|
||||
last_name: String,
|
||||
email: String,
|
||||
account_creation_time: u64,
|
||||
last_activity: u64,
|
||||
page_visibility: &'static str,
|
||||
directory: Option<String>,
|
||||
account_image: String,
|
||||
friend_list_public: bool,
|
||||
is_email_public: bool,
|
||||
personal_website: Option<String>,
|
||||
public_note: Option<String>,
|
||||
location: Option<String>,
|
||||
block_comments: bool,
|
||||
allow_posts_from_friends: bool,
|
||||
allow_mails: bool,
|
||||
lang: String,
|
||||
}
|
||||
|
||||
impl AdminUserInfoAPI {
|
||||
pub fn new(user: User) -> Self {
|
||||
Self {
|
||||
account_image: user.account_image_url_for_admin(),
|
||||
friend_list_public: user.public_friends_list,
|
||||
is_email_public: user.is_email_public,
|
||||
personal_website: user.personal_website,
|
||||
public_note: user.public_note,
|
||||
location: user.location,
|
||||
block_comments: user.block_comments_on_his_page,
|
||||
allow_posts_from_friends: user.allow_posts_from_friends,
|
||||
allow_mails: user.allow_mails,
|
||||
id: user.id.id(),
|
||||
first_name: user.first_name,
|
||||
last_name: user.last_name,
|
||||
email: user.email,
|
||||
account_creation_time: user.account_creation_time,
|
||||
last_activity: user.last_activity,
|
||||
page_visibility: user.user_page_visibility.to_api(),
|
||||
directory: user.virtual_directory,
|
||||
lang: user.lang,
|
||||
}
|
||||
}
|
||||
}
|
@ -11,4 +11,5 @@ pub mod admin_res_create_reset_token;
|
||||
pub mod admin_role_api;
|
||||
pub mod admin_res_create_account;
|
||||
pub mod admin_log_api;
|
||||
pub mod admin_search_user_result;
|
||||
pub mod admin_search_user_result_api;
|
||||
pub mod admin_user_info_api;
|
@ -5,7 +5,7 @@ use serde::Serialize;
|
||||
|
||||
use crate::api_data::custom_emoji::CustomEmojiAPI;
|
||||
use crate::data::error::ResultBoxError;
|
||||
use crate::data::user::{User, UserID, UserPageStatus};
|
||||
use crate::data::user::{User, UserID, UserPageVisibility};
|
||||
use crate::data::user::AccountImageVisibility::{COMUNIC_USERS, EVERYONE};
|
||||
use crate::helpers::{background_image_helper, custom_emojies_helper, friends_helper, likes_helper, user_helper};
|
||||
use crate::helpers::likes_helper::LikeType;
|
||||
@ -53,8 +53,8 @@ impl APIUserInfo {
|
||||
userID: info.id.id(),
|
||||
firstName: info.first_name.to_string(),
|
||||
lastName: info.last_name.to_string(),
|
||||
publicPage: info.status != UserPageStatus::PRIVATE,
|
||||
openPage: info.status == UserPageStatus::OPEN,
|
||||
publicPage: info.user_page_visibility != UserPageVisibility::PRIVATE,
|
||||
openPage: info.user_page_visibility == UserPageVisibility::OPEN,
|
||||
virtualDirectory: info.virtual_directory.clone().unwrap_or(String::new()),
|
||||
accountImage: APIUserInfo::get_account_image_url(user_id, info)?,
|
||||
customEmojis: custom_emojies_helper::get_list_user(&info.id)?
|
||||
|
Reference in New Issue
Block a user