From da9cbe3dbb799b7b668c895367c7d3778f1d0e16 Mon Sep 17 00:00:00 2001 From: marzavec Date: Fri, 6 Mar 2020 11:00:30 -0600 Subject: Minor UAC tweaks Added an underscore to the uac info lib which prevents the server from attempting to use the file as a command module, allowing removal of the 'info' property and empty 'run' command --- server/src/commands/utility/UAC/_info.js | 85 ++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 server/src/commands/utility/UAC/_info.js (limited to 'server/src/commands/utility/UAC/_info.js') 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; +} -- cgit v1.2.1