Skip to content

Commit 2ce5031

Browse files
yesyashshubhdevelop
authored andcommitted
add super user check in kickEachUser action
1 parent 583b2da commit 2ce5031

File tree

2 files changed

+22
-14
lines changed

2 files changed

+22
-14
lines changed

src/controllers/baseHandler.ts

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ import {
2727
NOTIFY_ONBOARDING,
2828
OOO,
2929
USER,
30+
REMOVE,
3031
GROUP_INVITE,
3132
} from "../constants/commands";
3233
import { updateNickName } from "../utils/updateNickname";
@@ -41,7 +42,7 @@ import {
4142
RETRY_COMMAND,
4243
} from "../constants/responses";
4344
import { DevFlag } from "../typeDefinitions/filterUsersByRole";
44-
// import { kickEachUser } from "./kickEachUser";
45+
import { kickEachUser } from "./kickEachUser";
4546
import { groupInvite } from "./groupInvite";
4647

4748
export async function baseHandler(
@@ -78,19 +79,16 @@ export async function baseHandler(
7879
return await mentionEachUser(transformedArgument, env, ctx);
7980
}
8081

81-
/**
82-
* HOT FIX to prevent non superusers from running the /remove commmand.
83-
* More info :- https://discord.com/channels/673083527624916993/729399523268624405/1293604361758441605
84-
* ---
85-
*/
86-
// case getCommandName(REMOVE): {
87-
// const data = message.data?.options as Array<messageRequestDataOptions>;
88-
// const transformedArgument = {
89-
// roleToBeRemovedObj: data[0],
90-
// channelId: message.channel_id,
91-
// };
92-
// return await kickEachUser(transformedArgument, env, ctx);
93-
// }
82+
case getCommandName(REMOVE): {
83+
const data = message.data?.options as Array<messageRequestDataOptions>;
84+
const transformedArgument = {
85+
member: message.member,
86+
roleToBeRemovedObj: data[0],
87+
channelId: message.channel_id,
88+
};
89+
90+
return await kickEachUser(transformedArgument, env, ctx);
91+
}
9492

9593
case getCommandName(LISTENING): {
9694
const data = message.data?.options;

src/controllers/kickEachUser.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,25 @@ import { getMembersInServer } from "../utils/getMembersInServer";
77
import { filterUserByRoles } from "../utils/filterUsersByRole";
88
import { discordTextResponse } from "../utils/discordResponse";
99
import { removeUsers } from "../utils/removeUsers";
10+
import { SUPER_USER_ONE, SUPER_USER_TWO } from "../constants/variables";
11+
import { messageRequestMember } from "../typeDefinitions/discordMessage.types";
1012

1113
export async function kickEachUser(
1214
transformedArgument: {
15+
member: messageRequestMember
1316
roleToBeRemovedObj: MentionEachUserOptions;
1417
channelId: number;
1518
},
1619
env: env,
1720
ctx: ExecutionContext
1821
) {
22+
const isUserSuperUser = [SUPER_USER_ONE, SUPER_USER_TWO].includes(transformedArgument.member.user.id.toString())
23+
24+
if (!isUserSuperUser) {
25+
const responseText = `You're not authorized to make this request.`;
26+
return discordTextResponse(responseText);
27+
}
28+
1929
const getMembersInServerResponse = await getMembersInServer(env);
2030
const roleId = transformedArgument.roleToBeRemovedObj.value;
2131

0 commit comments

Comments
 (0)