aboutsummaryrefslogtreecommitdiffstats
path: root/server/src/commands/utility/UAC/_info.js
diff options
context:
space:
mode:
Diffstat (limited to 'server/src/commands/utility/UAC/_info.js')
-rw-r--r--server/src/commands/utility/UAC/_info.js85
1 files changed, 85 insertions, 0 deletions
diff --git a/server/src/commands/utility/UAC/_info.js b/server/src/commands/utility/UAC/_info.js
new file mode 100644
index 0000000..6da85d5
--- /dev/null
+++ b/server/src/commands/utility/UAC/_info.js
@@ -0,0 +1,85 @@
+/**
+ * User Account Control information containing level constants
+ * and simple helper functions used to verify permissions
+ * @property {Object} levels - Defines labels for default permission ranges
+ * @author MinusGix ( https://github.com/MinusGix )
+ * @version v1.0.0
+ * @license WTFPL ( http://www.wtfpl.net/txt/copying/ )
+ */
+
+/**
+ * Object defining labels for default permission ranges
+ * @typedef {Object} levels
+ * @property {number} admin Global administrator range
+ * @property {number} moderator Global moderator range
+ * @property {number} channelOwner Local administrator range
+ * @property {number} channelModerator Local moderator range
+ * @property {number} channelTrusted Local (non-public) channel trusted
+ * @property {number} trustedUser Public channel trusted
+ * @property {number} default Default user level
+ */
+export const levels = {
+ admin: 9999999,
+ moderator: 999999,
+
+ channelOwner: 99999,
+ channelModerator: 9999,
+ channelTrusted: 8999,
+
+ trustedUser: 500,
+ default: 100,
+};
+
+/**
+ * Returns true if target level is equal or greater than the global admin level
+ * @public
+ * @return {boolean}
+ */
+export function isAdmin(level) {
+ return level >= levels.admin;
+}
+
+/**
+ * Returns true if target level is equal or greater than the global moderator level
+ * @public
+ * @return {boolean}
+ */
+export function isModerator(level) {
+ return level >= levels.moderator;
+}
+
+/**
+ * Returns true if target level is equal or greater than the channel owner level
+ * @public
+ * @return {boolean}
+ */
+export function isChannelOwner(level) {
+ return level >= levels.channelOwner;
+}
+
+/**
+ * Returns true if target level is equal or greater than the channel moderator level
+ * @public
+ * @return {boolean}
+ */
+export function isChannelModerator(level) {
+ return level >= levels.channelModerator;
+}
+
+/**
+ * Returns true if target level is equal or greater than the channel trust level
+ * @public
+ * @return {boolean}
+ */
+export function isChannelTrusted(level) {
+ return level >= levels.channelTrusted;
+}
+
+/**
+ * Returns true if target level is equal or greater than a trusted user
+ * @public
+ * @return {boolean}
+ */
+export function isTrustedUser(level) {
+ return level >= levels.trustedUser;
+}