change whitelist to work with a JSON file

This commit is contained in:
DaInfLoop 2024-09-05 17:07:28 +01:00
parent 13a1cf3d50
commit 7b6fcdf650
No known key found for this signature in database
GPG key ID: 8B96C44DDF5756E4
4 changed files with 21 additions and 5 deletions

1
.gitignore vendored
View file

@ -1,2 +1,3 @@
.env .env
node_modules node_modules
whitelist.json

View file

@ -33,3 +33,11 @@ $ npm i
``` ```
$ npx tsx . $ npx tsx .
``` ```
6. (Optional) Rename `whitelist.example.json` to `whitelist.json` and fill it with Slack User IDs who apart from admins/owners/primary owners should be able to view other people's verification.
```json
[
"UA1B2C3D4E5",
"U0123456789"
]
```

View file

@ -1,6 +1,6 @@
import type { UsersInfoResponse } from "@slack/web-api"; import type { UsersInfoResponse } from "@slack/web-api";
const { App, ExpressReceiver } = (await import("@slack/bolt")); const { App } = (await import("@slack/bolt"));
import "dotenv/config"; import "dotenv/config";
const app = new App({ const app = new App({
@ -8,17 +8,21 @@ const app = new App({
signingSecret: process.env.SLACK_SIGNING_SECRET, signingSecret: process.env.SLACK_SIGNING_SECRET,
}); });
const whitelist: string[] = [] const whitelist: string[] = (() => {
try {
return require('./whitelist.json')
} catch (e) {
return []
}
})();
function checkUserOk(user: UsersInfoResponse['user']) { function checkUserOk(user: UsersInfoResponse['user']) {
if (whitelist.includes(user!.id!)) return true if (whitelist.includes(user!.id!)) return true
console.log(user)
return user!.is_admin || user!.is_owner || user!.is_primary_owner return user!.is_admin || user!.is_owner || user!.is_primary_owner
} }
const eligibilityCmd = async ctx => { const eligibilityCmd = async (ctx: any) => {
await ctx.ack(); await ctx.ack();
const text = ctx.command.text.slice(); const text = ctx.command.text.slice();

3
whitelist.example.json Normal file
View file

@ -0,0 +1,3 @@
[
]