aboutsummaryrefslogtreecommitdiffstats
path: root/server/src/commands/admin
diff options
context:
space:
mode:
authormarzavec <admin@marzavec.com>2020-03-06 16:39:22 +0100
committerGitHub <noreply@github.com>2020-03-06 16:39:22 +0100
commit4e0e269007af349dee969724a8a0128c0ef22dae (patch)
treedaf36b87a9863a798d201242d0bbc68d39cda56d /server/src/commands/admin
parentMerge pull request #85 from MinusGix/add_channel_invite (diff)
parentMove most uses of uType filtering to use UAC levels (diff)
downloadhackchat-4e0e269007af349dee969724a8a0128c0ef22dae.tar.gz
hackchat-4e0e269007af349dee969724a8a0128c0ef22dae.zip
Merge pull request #89 from MinusGix/nul_initial2
Added UAC and numeric user levels
Diffstat (limited to 'server/src/commands/admin')
-rw-r--r--server/src/commands/admin/addmod.js7
-rw-r--r--server/src/commands/admin/listusers.js4
-rw-r--r--server/src/commands/admin/reload.js14
-rw-r--r--server/src/commands/admin/removemod.js7
-rw-r--r--server/src/commands/admin/saveconfig.js14
-rw-r--r--server/src/commands/admin/shout.js4
6 files changed, 26 insertions, 24 deletions
diff --git a/server/src/commands/admin/addmod.js b/server/src/commands/admin/addmod.js
index 26cec40..e5d8495 100644
--- a/server/src/commands/admin/addmod.js
+++ b/server/src/commands/admin/addmod.js
@@ -2,10 +2,12 @@
Description: Adds the target trip to the mod list then elevates the uType
*/
+import * as UAC from "../utility/UAC/info";
+
// module main
export async function run(core, server, socket, data) {
// increase rate limit chance and ignore if not admin
- if (socket.uType !== 'admin') {
+ if (!UAC.isAdmin(socket.level)) {
return server.police.frisk(socket.address, 20);
}
@@ -18,6 +20,7 @@ export async function run(core, server, socket, data) {
for (let i = 0, l = newMod.length; i < l; i += 1) {
// upgrade privilages
newMod[i].uType = 'mod';
+ newMod[i].level = UAC.levels.moderator;
// inform new mod
server.send({
@@ -37,7 +40,7 @@ export async function run(core, server, socket, data) {
server.broadcast({
cmd: 'info',
text: `Added mod: ${data.trip}`,
- }, { uType: 'mod' });
+ }, { level: UAC.isModerator });
return true;
}
diff --git a/server/src/commands/admin/listusers.js b/server/src/commands/admin/listusers.js
index 0b0199f..3ab6811 100644
--- a/server/src/commands/admin/listusers.js
+++ b/server/src/commands/admin/listusers.js
@@ -2,10 +2,12 @@
Description: Outputs all current channels and their user nicks
*/
+import * as UAC from "../utility/UAC/info";
+
// module main
export async function run(core, server, socket) {
// increase rate limit chance and ignore if not admin
- if (socket.uType !== 'admin') {
+ if (!UAC.isAdmin(socket.level)) {
return server.police.frisk(socket.address, 20);
}
diff --git a/server/src/commands/admin/reload.js b/server/src/commands/admin/reload.js
index 206e2ca..ccab805 100644
--- a/server/src/commands/admin/reload.js
+++ b/server/src/commands/admin/reload.js
@@ -2,10 +2,12 @@
Description: Clears and resets the command modules, outputting any errors
*/
+import * as UAC from "../utility/UAC/info";
+
// module main
export async function run(core, server, socket, data) {
// increase rate limit chance and ignore if not admin
- if (socket.uType !== 'admin') {
+ if (!UAC.isAdmin(socket.level)) {
return server.police.frisk(socket.address, 20);
}
@@ -28,17 +30,11 @@ export async function run(core, server, socket, data) {
loadResult += `\nReason: ${data.reason}`;
}
- // reply with results
+ // send results to moderators (which the user using this command is higher than)
server.reply({
cmd: 'info',
text: loadResult,
- }, socket);
-
- // notify mods of reload #transparency
- server.broadcast({
- cmd: 'info',
- text: loadResult,
- }, { uType: 'mod' });
+ }, { level: UAC.isModerator });
return true;
}
diff --git a/server/src/commands/admin/removemod.js b/server/src/commands/admin/removemod.js
index 9190dd6..48e65fb 100644
--- a/server/src/commands/admin/removemod.js
+++ b/server/src/commands/admin/removemod.js
@@ -2,10 +2,12 @@
Description: Removes target trip from the config as a mod and downgrades the socket type
*/
+import * as UAC from "../utility/UAC/info";
+
// module main
export async function run(core, server, socket, data) {
// increase rate limit chance and ignore if not admin
- if (socket.uType !== 'admin') {
+ if (!UAC.isAdmin(socket.level)) {
return server.police.frisk(socket.address, 20);
}
@@ -18,6 +20,7 @@ export async function run(core, server, socket, data) {
for (let i = 0, l = targetMod.length; i < l; i += 1) {
// downgrade privilages
targetMod[i].uType = 'user';
+ targetMod[i].level = UAC.levels.user;
// inform ex-mod
server.send({
@@ -39,7 +42,7 @@ export async function run(core, server, socket, data) {
server.broadcast({
cmd: 'info',
text: `Removed mod: ${data.trip}`,
- }, { uType: 'mod' });
+ }, { level: UAC.isModerator });
return true;
}
diff --git a/server/src/commands/admin/saveconfig.js b/server/src/commands/admin/saveconfig.js
index 6c713b4..708f406 100644
--- a/server/src/commands/admin/saveconfig.js
+++ b/server/src/commands/admin/saveconfig.js
@@ -2,10 +2,12 @@
Description: Writes the current config to disk
*/
+import * as UAC from "../utility/UAC/info";
+
// module main
export async function run(core, server, socket) {
// increase rate limit chance and ignore if not admin
- if (socket.uType !== 'admin') {
+ if (!UAC.isAdmin(socket.level)) {
return server.police.frisk(socket.address, 20);
}
@@ -17,17 +19,11 @@ export async function run(core, server, socket) {
}, socket);
}
- // return success message
+ // return success message to moderators and admins
server.reply({
cmd: 'info',
text: 'Config saved!',
- }, socket);
-
- // notify mods #transparency
- server.broadcast({
- cmd: 'info',
- text: 'Config saved!',
- }, { uType: 'mod' });
+ }, { level: UAC.isModerator });
return true;
}
diff --git a/server/src/commands/admin/shout.js b/server/src/commands/admin/shout.js
index 73b0734..ee81e58 100644
--- a/server/src/commands/admin/shout.js
+++ b/server/src/commands/admin/shout.js
@@ -2,10 +2,12 @@
Description: Emmits a server-wide message as `info`
*/
+import * as UAC from "../utility/UAC/info";
+
// module main
export async function run(core, server, socket, data) {
// increase rate limit chance and ignore if not admin
- if (socket.uType !== 'admin') {
+ if (!UAC.isAdmin(socket.level)) {
return server.police.frisk(socket.address, 20);
}