mirror of
https://gitlab.com/comunic/comunicapiv3
synced 2025-07-15 11:48:05 +00:00
Check if a user is allow to create posts on another user's page
This commit is contained in:
src
@ -4,7 +4,7 @@
|
||||
use serde::Serialize;
|
||||
|
||||
use crate::data::user::{User, UserPageStatus, UserID};
|
||||
use crate::helpers::{friends_helper, custom_emojies_helper, background_image_helper, likes_helper};
|
||||
use crate::helpers::{friends_helper, custom_emojies_helper, background_image_helper, likes_helper, user_helper};
|
||||
use crate::data::error::ResultBoxError;
|
||||
use crate::utils::user_data_utils::user_data_url;
|
||||
use crate::data::user::AccountImageVisibility::{EVERYONE, COMUNIC_USERS};
|
||||
@ -40,6 +40,7 @@ struct APIAdvancedInfo {
|
||||
number_friends: usize,
|
||||
pageLikes: usize,
|
||||
user_page_like: bool,
|
||||
can_post_texts: bool,
|
||||
}
|
||||
|
||||
impl APIUserInfo {
|
||||
@ -65,15 +66,16 @@ impl APIUserInfo {
|
||||
/// Get advanced user information
|
||||
pub fn new_advanced_info(user_id: Option<UserID>, info: &User) -> ResultBoxError<APIUserInfo> {
|
||||
let mut user = APIUserInfo::new(user_id, info)?;
|
||||
let curr_user_id = user_id.unwrap_or(0);
|
||||
let signed_in = user_id.is_some();
|
||||
|
||||
// Check if we can return the number of friends of the user
|
||||
let number_friends = if info.public_friends_list || user_id.unwrap_or(0) == info.id {
|
||||
let number_friends = if info.public_friends_list || curr_user_id == info.id {
|
||||
friends_helper::count_friends(info.id)?
|
||||
} else { 0 };
|
||||
|
||||
let likes_page = if signed_in {
|
||||
likes_helper::is_liking(user_id.unwrap(), info.id as u64, LikeType::USER)?
|
||||
likes_helper::is_liking(curr_user_id, info.id as u64, LikeType::USER)?
|
||||
} else { false };
|
||||
|
||||
// Set advanced user information
|
||||
@ -88,6 +90,7 @@ impl APIUserInfo {
|
||||
number_friends,
|
||||
pageLikes: likes_helper::count(info.id as u64, LikeType::USER)?,
|
||||
user_page_like: likes_page,
|
||||
can_post_texts: user_helper::can_create_posts(curr_user_id, info.id)?
|
||||
});
|
||||
|
||||
Ok(user)
|
||||
|
Reference in New Issue
Block a user