diff options
Diffstat (limited to 'server/src/commands/utility/UAC/_info.js')
-rw-r--r-- | server/src/commands/utility/UAC/_info.js | 85 |
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; +} |