From 375837c31f025a73a5483c5b0183697d4992567a Mon Sep 17 00:00:00 2001 From: Dragory <2606411+Dragory@users.noreply.github.com> Date: Sun, 5 Sep 2021 20:09:22 +0300 Subject: [PATCH] Use permissions for dashboard perm listing commands --- .../plugins/BotControl/BotControlPlugin.ts | 1 + .../commands/ListDashboardPermsCmd.ts | 7 ++----- .../commands/ListDashboardUsersCmd.ts | 19 ++++++++++++------- backend/src/plugins/BotControl/types.ts | 1 + 4 files changed, 16 insertions(+), 12 deletions(-) diff --git a/backend/src/plugins/BotControl/BotControlPlugin.ts b/backend/src/plugins/BotControl/BotControlPlugin.ts index 23ba5dcc..314e7420 100644 --- a/backend/src/plugins/BotControl/BotControlPlugin.ts +++ b/backend/src/plugins/BotControl/BotControlPlugin.ts @@ -27,6 +27,7 @@ const defaultOptions = { can_eligible: false, can_performance: false, can_add_server_from_invite: false, + can_list_dashboard_perms: false, update_cmd: null, }, }; diff --git a/backend/src/plugins/BotControl/commands/ListDashboardPermsCmd.ts b/backend/src/plugins/BotControl/commands/ListDashboardPermsCmd.ts index 4a8a609c..dcfb166c 100644 --- a/backend/src/plugins/BotControl/commands/ListDashboardPermsCmd.ts +++ b/backend/src/plugins/BotControl/commands/ListDashboardPermsCmd.ts @@ -7,11 +7,8 @@ import { resolveUser } from "../../../utils"; import { botControlCmd } from "../types"; export const ListDashboardPermsCmd = botControlCmd({ - trigger: ["list_dashboard_permissions", "list_dashboard_perms", "list_dash_permissionss", "list_dash_perms"], - permission: null, - config: { - preFilters: [isOwnerPreFilter], - }, + trigger: ["list_dashboard_permissions", "list_dashboard_perms", "list_dash_permissions", "list_dash_perms"], + permission: "can_list_dashboard_perms", signature: { guildId: ct.string({ option: true, shortcut: "g" }), diff --git a/backend/src/plugins/BotControl/commands/ListDashboardUsersCmd.ts b/backend/src/plugins/BotControl/commands/ListDashboardUsersCmd.ts index 52c3083f..359a6e5b 100644 --- a/backend/src/plugins/BotControl/commands/ListDashboardUsersCmd.ts +++ b/backend/src/plugins/BotControl/commands/ListDashboardUsersCmd.ts @@ -6,10 +6,7 @@ import { botControlCmd } from "../types"; export const ListDashboardUsersCmd = botControlCmd({ trigger: ["list_dashboard_users"], - permission: null, - config: { - preFilters: [isOwnerPreFilter], - }, + permission: "can_list_dashboard_perms", signature: { guildId: ct.string(), @@ -23,13 +20,21 @@ export const ListDashboardUsersCmd = botControlCmd({ } const dashboardUsers = await pluginData.state.apiPermissionAssignments.getByGuildId(guild.id); - const users = await Promise.all(dashboardUsers.map(perm => resolveUser(pluginData.client, perm.target_id))); - const userNameList = users.map(user => `<@!${user.id}> (**${user.tag}**, \`${user.id}\`)`); + const users = await Promise.all( + dashboardUsers.map(async perm => ({ + user: await resolveUser(pluginData.client, perm.target_id), + permission: perm, + })), + ); + const userNameList = users.map( + ({ user, permission }) => + `<@!${user.id}> (**${user.tag}**, \`${user.id}\`): ${permission.permissions.join(", ")}`, + ); sendSuccessMessage( pluginData, msg.channel as TextChannel, - `The following users have dashboard access for **${guild.name}**:\n\n${userNameList}`, + `The following users have dashboard access for **${guild.name}**:\n\n${userNameList.join("\n")}`, {}, ); }, diff --git a/backend/src/plugins/BotControl/types.ts b/backend/src/plugins/BotControl/types.ts index b5c00657..f2da13ef 100644 --- a/backend/src/plugins/BotControl/types.ts +++ b/backend/src/plugins/BotControl/types.ts @@ -11,6 +11,7 @@ export const ConfigSchema = t.type({ can_eligible: t.boolean, can_performance: t.boolean, can_add_server_from_invite: t.boolean, + can_list_dashboard_perms: t.boolean, update_cmd: tNullable(t.string), }); export type TConfigSchema = t.TypeOf;