Version 0.6.0 - Ajout des utilisateurs et des paramètres V1
All checks were successful
Neutral/pipeline/head This commit looks good
All checks were successful
Neutral/pipeline/head This commit looks good
This commit is contained in:
156
bin/users.js
156
bin/users.js
@ -18,22 +18,30 @@ function setup() {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @returns Liste des utilisateurs
|
||||
*/
|
||||
module.exports.getUsers = function () {
|
||||
module.exports.getAllUsers = async function() {
|
||||
return new Promise(async (resolve, reject) => {
|
||||
const users = await this.fetchUsers()
|
||||
|
||||
return usersList
|
||||
// Remove for every people the password & the tokens
|
||||
|
||||
for(var user of users) {
|
||||
user = user[1]
|
||||
user.password = null
|
||||
user.tokens = null
|
||||
}
|
||||
|
||||
|
||||
resolve(JSON.stringify(Array.from(users)))
|
||||
})
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Get all users from Users Data Base
|
||||
*/
|
||||
module.exports.fetchUsers = function () {
|
||||
|
||||
|
||||
ulog.step.init("fetch_user", "Récupération de tous les utilisateurs inscrit dans la base de donnée")
|
||||
const userFile = getFile()
|
||||
usersList = new Map()
|
||||
@ -80,6 +88,8 @@ module.exports.fetchUsers = function () {
|
||||
|
||||
|
||||
ulog.step.end("fetch_user")
|
||||
|
||||
return usersList
|
||||
}
|
||||
|
||||
/**
|
||||
@ -177,6 +187,7 @@ module.exports.User = class {
|
||||
}
|
||||
userFile.push(this)
|
||||
updateFile(userFile)
|
||||
|
||||
usersList.set(this.username, this)
|
||||
}
|
||||
|
||||
@ -298,12 +309,37 @@ module.exports.User = class {
|
||||
|
||||
}
|
||||
|
||||
setNewUsername(text) {
|
||||
this.#sync()
|
||||
module.exports.deleteUser(this.username)
|
||||
this.username = text
|
||||
this.register()
|
||||
|
||||
ulog.log("Le nom d'utilisateur de l'utilisateur a été modifié : " + this.username)
|
||||
|
||||
}
|
||||
|
||||
setLastLogin(text) {
|
||||
this.#sync()
|
||||
this.lastLogin = text
|
||||
this.register()
|
||||
}
|
||||
|
||||
setPicture(file) {
|
||||
this.#sync()
|
||||
var pictureDir = __glob.USERS_IMAGES + path.sep + uuid.v4().toString() + ".png"
|
||||
fs.writeFileSync(pictureDir, file)
|
||||
|
||||
this.picture = pictureDir.replace(__glob.USERS_IMAGES + path.sep, "/images/users/")
|
||||
this.register()
|
||||
}
|
||||
|
||||
setPermissions(permissions) {
|
||||
this.#sync()
|
||||
this.permission = permissions
|
||||
this.register()
|
||||
}
|
||||
|
||||
#sync() {
|
||||
|
||||
for(var userGet of usersList.keys()) {
|
||||
@ -321,6 +357,108 @@ module.exports.User = class {
|
||||
}
|
||||
}
|
||||
|
||||
module.exports.addUser = function(settings) {
|
||||
|
||||
if(settings.username == '') {
|
||||
ulog.error("Le nom d'utilisateur est manquant")
|
||||
return "USERNAME_MISSING"
|
||||
} else if(settings.password == '') {
|
||||
ulog.error("Le mot de passe est manquant")
|
||||
return "PASSWORD_MISSING"
|
||||
} else if(settings.display_name == '') {
|
||||
ulog.error("Le nom d'affichage est manquant")
|
||||
return "DISPLAY_NAME_MISSING"
|
||||
} else if(this.getUser(settings.username)) {
|
||||
ulog.error("L'utilisateur existe déjà : " + settings.username)
|
||||
return "ALREADY_EXIST"
|
||||
} else {
|
||||
ulog.step.init("add_user", "Ajout d'un utilisateur dans la base de donnée : " + settings.username)
|
||||
var pictureDir = null
|
||||
|
||||
|
||||
if(settings.picture == null) {
|
||||
pictureDir = "/images/users/default.jpg"
|
||||
} else {
|
||||
pictureDir = __glob.USERS_IMAGES + path.sep + uuid.v4().toString() + ".png"
|
||||
fs.writeFileSync(pictureDir, settings.picture)
|
||||
|
||||
|
||||
}
|
||||
|
||||
const user = new this.User({
|
||||
username: settings.username,
|
||||
display_name: settings.display_name,
|
||||
permission: settings.permissions,
|
||||
picture: pictureDir.replace(__glob.USERS_IMAGES + path.sep, "/images/users/")
|
||||
|
||||
})
|
||||
|
||||
user.setPassword(settings.password)
|
||||
user.register()
|
||||
ulog.step.end("add_user")
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
module.exports.deleteUser = function(username) {
|
||||
ulog.step.init("delete_user", "Suppression d'un utilisateur dans la base de donnée : " + username)
|
||||
const user = this.getUser(username)
|
||||
user.unregister()
|
||||
ulog.step.end("delete_user")
|
||||
return "OK"
|
||||
}
|
||||
|
||||
|
||||
module.exports.getUser = function(username) {
|
||||
return usersList.get(username)
|
||||
}
|
||||
|
||||
module.exports.editUser = function(settings) {
|
||||
if(settings.username == '') {
|
||||
ulog.error("Le nom d'utilisateur est manquant")
|
||||
return "USERNAME_MISSING"
|
||||
} else if(settings.display_name == '') {
|
||||
ulog.error("Le nom d'affichage est manquant")
|
||||
return "DISPLAY_NAME_MISSING"
|
||||
} else {
|
||||
ulog.step.init("edit_user", "Modification d'un utilisateur dans la base de donnée : " + settings.username)
|
||||
const user = this.fetchUsers().get(settings.username)
|
||||
if(user) {
|
||||
console.log(settings)
|
||||
if(settings.newusername && settings.newusername != settings.username) {
|
||||
if(this.getUser(settings.newusername)) {
|
||||
ulog.error("L'utilisateur existe déjà : " + settings.username)
|
||||
return "ALREADY_EXIST"
|
||||
} else {
|
||||
|
||||
user.setNewUsername(settings.newusername)
|
||||
}
|
||||
}
|
||||
if(settings.display_name) {
|
||||
user.setDisplayName(settings.display_name)
|
||||
}
|
||||
|
||||
if(settings.password) {
|
||||
user.setPassword(settings.password)
|
||||
}
|
||||
|
||||
if(settings.picture) {
|
||||
user.setPicture(settings.picture)
|
||||
}
|
||||
if(settings.permissions) {
|
||||
|
||||
user.setPermissions(settings.permissions)
|
||||
}
|
||||
ulog.step.end("edit_user")
|
||||
return "OK"
|
||||
} else {
|
||||
ulog.step.end("edit_user")
|
||||
return "NOT_EXIST"
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
|
Reference in New Issue
Block a user