mirror of
				https://github.com/pierre42100/ComunicWeb
				synced 2025-11-04 12:14:12 +00:00 
			
		
		
		
	Create new users management system.
This commit is contained in:
		@@ -133,6 +133,27 @@ function getMultipleUsersInfo(usersID, afterGetUserInfos, forceRequest){
 | 
			
		||||
	ComunicWeb.user.userInfos.getMultipleUsersInfo(usersID, afterGetUserInfos, forceRequest);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Get information about multiple users
 | 
			
		||||
 * 
 | 
			
		||||
 * @param {Array~Object} users The list of users to get
 | 
			
		||||
 * @param {Boolean} force
 | 
			
		||||
 * @returns {Promise}
 | 
			
		||||
 */
 | 
			
		||||
function getUsers(users, force) {
 | 
			
		||||
    return new Promise((resolve, error) => {
 | 
			
		||||
        getMultipleUsersInfo(users, result => {
 | 
			
		||||
 | 
			
		||||
            if(result.error) 
 | 
			
		||||
                error(result.error);
 | 
			
		||||
                
 | 
			
		||||
            else
 | 
			
		||||
                resolve(new UsersList(result));
 | 
			
		||||
 | 
			
		||||
        }, force);
 | 
			
		||||
    });
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Get information about a single user
 | 
			
		||||
 * 
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										70
									
								
								assets/js/user/usersList.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										70
									
								
								assets/js/user/usersList.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,70 @@
 | 
			
		||||
/**
 | 
			
		||||
 * Users list
 | 
			
		||||
 * 
 | 
			
		||||
 * Contains a list of users
 | 
			
		||||
 * 
 | 
			
		||||
 * @author Pierre HUBERT
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * User class - contains information about a single user
 | 
			
		||||
 */
 | 
			
		||||
class User {
 | 
			
		||||
	constructor(info){
 | 
			
		||||
		this.virtualDirectory = info.virtualDirectory;
 | 
			
		||||
		this.image = info.accountImage;
 | 
			
		||||
		this.firstName = info.firstName;
 | 
			
		||||
		this.lastName = info.lastName;
 | 
			
		||||
		this.isOpen = info.openPage == "true";
 | 
			
		||||
		this.isPublic = info.publicPage == "true";
 | 
			
		||||
		this.id = info.userID;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Get the full name of the user
 | 
			
		||||
	 */
 | 
			
		||||
	get fullName() {
 | 
			
		||||
		return this.firstName + " " + this.lastName;
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class UsersList {
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Initialize a list of users using the legacy users system
 | 
			
		||||
	 * 
 | 
			
		||||
	 * @param {Users} list The list of users to add
 | 
			
		||||
	 */
 | 
			
		||||
	constructor(list){
 | 
			
		||||
		
 | 
			
		||||
		/**
 | 
			
		||||
		 * @type {User[]}
 | 
			
		||||
		 */
 | 
			
		||||
		this.list = [];
 | 
			
		||||
		
 | 
			
		||||
		for (const num in list) {
 | 
			
		||||
			if (list.hasOwnProperty(num)) {
 | 
			
		||||
				this.list.push(new User(list[num]));
 | 
			
		||||
				
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Find and returns a user specified by its ID
 | 
			
		||||
	 * 
 | 
			
		||||
	 * @param {Number} id The ID of the user to get
 | 
			
		||||
	 * @return {User} target user / null in case of failure
 | 
			
		||||
	 */
 | 
			
		||||
	get(id){
 | 
			
		||||
		for (const num in this.list) {
 | 
			
		||||
			if (this.list.hasOwnProperty(num)) {
 | 
			
		||||
				const user = this.list[num];
 | 
			
		||||
				
 | 
			
		||||
				if(user.id == id)
 | 
			
		||||
					return user;
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
@@ -471,6 +471,7 @@ class Dev {
 | 
			
		||||
		"js/user/loginTokens.js",
 | 
			
		||||
		"js/user/userLogin.js",
 | 
			
		||||
		"js/user/userInfos.js",
 | 
			
		||||
		"js/user/usersList.js",
 | 
			
		||||
			
 | 
			
		||||
 | 
			
		||||
		//Pages scripts
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user