- properly handle permissions for user commands

- add central permission group constant
This commit is contained in:
bignutty 2024-12-08 14:49:57 +01:00
parent dcb823a0a1
commit d2aeecf70d
100 changed files with 245 additions and 942 deletions

View file

@ -1,12 +1,9 @@
const { DEFAULT_PREFIXES } = require('#constants');
const { DEFAULT_PREFIXES, PERMISSION_GROUPS } = require('#constants');
const { createEmbed } = require('#utils/embed')
const { codeblock } = require('#utils/markdown');
const { editOrReply } = require('#utils/message')
// TODO: Turn this into a general purpose permissions constant
const { Permissions } = require("detritus-client/lib/constants");
const superagent = require('superagent');
const SIZES = Object.freeze({
@ -36,7 +33,7 @@ module.exports = {
{ name: 'variance', default: '', required: false, help: "Variance (1000-9999)" },
{ name: 'rotate', default: '', required: false, help: "Rotation amount (0-360)" }
],
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.USE_EXTERNAL_EMOJIS, Permissions.ATTACH_FILES, Permissions.READ_MESSAGE_HISTORY],
permissionsClient: [...PERMISSION_GROUPS.baseline, ...PERMISSION_GROUPS.attachments],
run: async (context, args) => {
await editOrReply(context, createEmbed("loading", context, `Generating image...`))
try{

View file

@ -1,73 +0,0 @@
const { createEmbed } = require('#utils/embed')
const { editOrReply } = require('#utils/message')
// TODO: Turn this into a general purpose permissions constant
const { Permissions } = require("detritus-client/lib/constants");
const APPS = [
"appcode",
"aqua",
"big-data-tools",
"clion",
"cwm",
"datagrip",
"datalore",
"dataspell",
"dotcover",
"dotmemory",
"dotpeek",
"dottrace",
"fleet",
"gateway",
"goland",
"grazie",
"hub",
"intellij-idea",
"intellij-idea-community",
"intellij-idea-edu",
"intellij-rust",
"jetbrains",
"jb-academy",
"kotlin",
"license-vault",
"marketplace",
"mono",
"mps",
"phpstorm",
"pycharm",
"pycharm-community",
"pycharm-edu",
"qa-tools",
"qodana",
"resharper",
"resharper-cpp",
"rider",
"riderflow",
"rubymine",
"space",
"teamcity",
"toolbox",
"upsource",
"webstorm",
"youtrack",
]
module.exports = {
name: 'art2',
aliases: ['wallpaper2'],
metadata: {
description: 'Returns a random colorful wallpaper from JetBrains Eidos.',
description_short: 'AI wallpapers',
category: 'fun',
usage: `art2`
},
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.USE_EXTERNAL_EMOJIS, Permissions.READ_MESSAGE_HISTORY],
run: async (context) => {
context.triggerTyping();
return editOrReply(context, createEmbed("default", context, {
image: {
url: `https://resources.jetbrains.com/cai/eidos_231/${APPS[Math.floor(Math.random()*APPS.length)]}/${Math.floor(1 + Math.random()*999)}.png`
}
}))
}
};

View file

@ -1,13 +1,10 @@
const { garfield } = require('#api');
const { FUNNY_CAT_ICONS } = require('#constants');
const { FUNNY_CAT_ICONS, PERMISSION_GROUPS } = require('#constants');
const { createEmbed } = require('#utils/embed');
const { timestamp } = require('#utils/markdown');
const { editOrReply } = require('#utils/message')
// TODO: Turn this into a general purpose permissions constant
const { Permissions } = require("detritus-client/lib/constants");
module.exports = {
name: 'garfield',
aliases: ['garf'],
@ -17,7 +14,7 @@ module.exports = {
category: 'fun',
usage: `garfield`
},
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.USE_EXTERNAL_EMOJIS, Permissions.READ_MESSAGE_HISTORY],
permissionsClient: [...PERMISSION_GROUPS.baseline],
run: async (context) => {
context.triggerTyping();

View file

@ -1,10 +1,8 @@
const { PERMISSION_GROUPS } = require('#constants');
const { createEmbed } = require('#utils/embed');
const { editOrReply } = require('#utils/message');
const { STATICS } = require('#utils/statics');
// TODO: Turn this into a general purpose permissions constant
const { Permissions } = require("detritus-client/lib/constants");
const superagent = require('superagent');
module.exports = {
@ -16,7 +14,7 @@ module.exports = {
category: 'fun',
usage: `inspire`
},
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.USE_EXTERNAL_EMOJIS, Permissions.ATTACH_FILES, Permissions.READ_MESSAGE_HISTORY],
permissionsClient: [...PERMISSION_GROUPS.baseline],
run: async (context) => {
await context.triggerTyping();
try {

View file

@ -1,11 +1,9 @@
const { otter } = require('#api');
const { PERMISSION_GROUPS } = require('#constants');
const { createEmbed } = require('#utils/embed')
const { editOrReply } = require('#utils/message')
// TODO: Turn this into a general purpose permissions constant
const { Permissions } = require("detritus-client/lib/constants");
module.exports = {
name: 'otter',
metadata: {
@ -15,7 +13,7 @@ module.exports = {
usage: `otter`,
slashCommand: "otter"
},
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.USE_EXTERNAL_EMOJIS, Permissions.ATTACH_FILES, Permissions.READ_MESSAGE_HISTORY],
permissionsClient: [...PERMISSION_GROUPS.baseline],
run: async (context) => {
await context.triggerTyping();
try{