Skip to content

Commit dab6d0f

Browse files
committed
added feature flag
1 parent cb6770b commit dab6d0f

File tree

3 files changed

+25
-11
lines changed

3 files changed

+25
-11
lines changed

src/constants/commands.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,12 @@ export const GRANT_AWS_ACCESS = {
4949
},
5050
],
5151
},
52+
{
53+
name: "dev",
54+
description: "Feature flag",
55+
type: 5,
56+
require: false,
57+
},
5258
],
5359
};
5460

src/controllers/baseHandler.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,7 @@ export async function baseHandler(
9191
userDetails: data[0],
9292
awsGroupDetails: data[1],
9393
channelId: message.channel_id,
94+
dev: data.find((item) => item.name === "dev") as unknown as DevFlag,
9495
};
9596

9697
return await grantAWSAccessCommand(transformedArgument, env, ctx);

src/controllers/grantAWSAccessCommand.ts

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,27 +6,34 @@ import {
66
messageRequestDataOptions,
77
} from "../typeDefinitions/discordMessage.types";
88
import { grantAWSAccess } from "../utils/awsAccess";
9+
import { DevFlag } from "../typeDefinitions/filterUsersByRole";
910

1011
export async function grantAWSAccessCommand(
1112
transformedArgument: {
1213
member: messageRequestMember;
1314
userDetails: messageRequestDataOptions;
1415
awsGroupDetails: messageRequestDataOptions;
1516
channelId: number;
17+
dev?: DevFlag;
1618
},
1719
env: env,
1820
ctx: ExecutionContext
1921
) {
20-
const isUserSuperUser = [SUPER_USER_ONE, SUPER_USER_TWO].includes(
21-
transformedArgument.member.user.id.toString()
22-
);
23-
if (!isUserSuperUser) {
24-
const responseText = `You're not authorized to make this request.`;
25-
return discordTextResponse(responseText);
26-
}
27-
const roleId = transformedArgument.userDetails.value;
28-
const groupId = transformedArgument.awsGroupDetails.value;
29-
const channelId = transformedArgument.channelId;
22+
const dev = transformedArgument?.dev?.value || false;
23+
if (dev) {
24+
const isUserSuperUser = [SUPER_USER_ONE, SUPER_USER_TWO].includes(
25+
transformedArgument.member.user.id.toString()
26+
);
27+
if (!isUserSuperUser) {
28+
const responseText = `You're not authorized to make this request.`;
29+
return discordTextResponse(responseText);
30+
}
31+
const roleId = transformedArgument.userDetails.value;
32+
const groupId = transformedArgument.awsGroupDetails.value;
33+
const channelId = transformedArgument.channelId;
3034

31-
return grantAWSAccess(roleId, groupId, env, ctx, channelId);
35+
return grantAWSAccess(roleId, groupId, env, ctx, channelId);
36+
} else {
37+
return discordTextResponse("Please enable feature flag to make this work");
38+
}
3239
}

0 commit comments

Comments
 (0)