Finish users interface on ACP
This commit is contained in:
parent
7b9162f890
commit
bde57973c3
3 changed files with 136 additions and 7 deletions
76
lib/acp.js
76
lib/acp.js
|
|
@ -12,6 +12,8 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
|
|||
var Logger = require("./logger");
|
||||
var Server = require("./server");
|
||||
var db = require("./database");
|
||||
var util = require("./utilities");
|
||||
var Config = require("./config");
|
||||
|
||||
function handleAnnounce(user, data) {
|
||||
var sv = Server.getServer();
|
||||
|
|
@ -105,11 +107,85 @@ function handleListUsers(user, data) {
|
|||
}
|
||||
|
||||
function handleSetRank(user, data) {
|
||||
var name = data.name;
|
||||
var rank = data.rank;
|
||||
if (typeof name !== "string" || typeof rank !== "number") {
|
||||
return;
|
||||
}
|
||||
|
||||
if (rank >= user.global_rank) {
|
||||
user.socket.emit("errMessage", {
|
||||
msg: "You are not permitted to promote others to equal or higher rank than " +
|
||||
"yourself."
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
db.users.getGlobalRank(name, function (err, oldrank) {
|
||||
if (err) {
|
||||
user.socket.emit("errMessage", {
|
||||
msg: err
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
if (oldrank >= user.global_rank) {
|
||||
user.socket.emit("errMessage", {
|
||||
msg: "You are not permitted to change the rank of users who rank " +
|
||||
"higher than you."
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
db.users.setGlobalRank(name, rank, function (err) {
|
||||
if (err) {
|
||||
user.socket.emit("errMessage", {
|
||||
msg: err
|
||||
});
|
||||
} else {
|
||||
user.socket.emit("acp-set-rank", data);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function handleResetPassword(user, data) {
|
||||
var name = data.name;
|
||||
var email = data.email;
|
||||
if (typeof name !== "string" || typeof email !== "string") {
|
||||
return;
|
||||
}
|
||||
|
||||
db.users.getGlobalRank(name, function (err, rank) {
|
||||
if (rank >= user.global_rank) {
|
||||
user.socket.emit("errMessage", {
|
||||
msg: "You don't have permission to reset the password for " + name
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
var hash = util.sha1(util.randomSalt(64));
|
||||
var expire = Date.now() + 86400000;
|
||||
db.addPasswordReset({
|
||||
ip: "",
|
||||
name: name,
|
||||
email: email,
|
||||
hash: hash,
|
||||
expire: expire
|
||||
}, function (err) {
|
||||
if (err) {
|
||||
user.socket.emit("errMessage", {
|
||||
msg: err
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
user.socket.emit("errMessage", {
|
||||
msg: "Reset link: " + Config.get("http.domain") +
|
||||
"/account/passwordrecover/" + hash
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function init(user) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue