mirror of
				https://gitlab.com/comunic/comunicapiv2
				synced 2025-11-04 03:24:04 +00:00 
			
		
		
		
	Completed advanced info
This commit is contained in:
		@@ -57,4 +57,27 @@ export class FriendsHelper {
 | 
			
		||||
			}
 | 
			
		||||
		}) > 0;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Check out whether friendship allows to create posts or not
 | 
			
		||||
	 * 
 | 
			
		||||
	 * @param userID User wishing to create a post
 | 
			
		||||
	 * @param targetID Target user ID
 | 
			
		||||
	 */
 | 
			
		||||
	public static async CanPostTexts(userID: number, targetID: number) : Promise<boolean> {
 | 
			
		||||
		const result = await DatabaseHelper.QueryRow({
 | 
			
		||||
			table: FRIENDS_TABLE,
 | 
			
		||||
			where: {
 | 
			
		||||
				ID_personne: targetID,
 | 
			
		||||
				ID_amis: userID,
 | 
			
		||||
				actif: 1
 | 
			
		||||
			},
 | 
			
		||||
			fields: ["autoriser_post_page"]
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
		if(result == null)
 | 
			
		||||
			return false;
 | 
			
		||||
		
 | 
			
		||||
		return result["autoriser_post_page"] == 1;
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
@@ -125,6 +125,50 @@ export class UserHelper {
 | 
			
		||||
		return (await this.GetUserInfo(userID)).pageStatus;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Check out whether a user allows posts from his 
 | 
			
		||||
	 * friends on his page or not
 | 
			
		||||
	 * 
 | 
			
		||||
	 * This is a convenience method
 | 
			
		||||
	 * 
 | 
			
		||||
	 * @param userID Target user ID
 | 
			
		||||
	 */
 | 
			
		||||
	private static async AllowPostsOnHisPage(userID: number) : Promise<boolean> {
 | 
			
		||||
		return (await this.GetUserInfo(userID)).allowPostsFromFriends;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Check out whether a user can create a post on another user
 | 
			
		||||
	 * page
 | 
			
		||||
	 * 
 | 
			
		||||
	 * @param userID The user who wish to create a post
 | 
			
		||||
	 * @param targetID The target page
 | 
			
		||||
	 */
 | 
			
		||||
	public static async CanCreatePosts(userID: number, targetID: number) {
 | 
			
		||||
		
 | 
			
		||||
		// User MUST be signed in
 | 
			
		||||
		if(userID < 1)
 | 
			
		||||
			return false;
 | 
			
		||||
		
 | 
			
		||||
		// A user can always create posts on his page
 | 
			
		||||
		if(userID == targetID) return true;
 | 
			
		||||
 | 
			
		||||
		// User must be able to see the page
 | 
			
		||||
		if(!await this.CanSeeUserPage(userID, targetID))
 | 
			
		||||
			return false;
 | 
			
		||||
		
 | 
			
		||||
		//Check if the user allow posts on his page
 | 
			
		||||
		if(!await this.AllowPostsOnHisPage(targetID))
 | 
			
		||||
			return false;
 | 
			
		||||
		
 | 
			
		||||
		//Check if the friendship of the user allows him to create posts
 | 
			
		||||
		if(!await FriendsHelper.CanPostTexts(userID, targetID))
 | 
			
		||||
			return false;
 | 
			
		||||
 | 
			
		||||
		// yes by default
 | 
			
		||||
		return true;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	private static async DbToUser(row: any) : Promise<User> {
 | 
			
		||||
		return new User({
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user