-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathPermissionDiscordRole.js
More file actions
29 lines (19 loc) · 883 Bytes
/
Copy pathPermissionDiscordRole.js
File metadata and controls
29 lines (19 loc) · 883 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
//WARNING: Any user allowed to rename their own roles or to create and assign themselves roles will be able to give themselves permissions.
import { PermissionProvider } from "./Users.js";
export default class PermissionDiscordRole extends PermissionProvider {
get description() { return "Permissions provider that turns Discord role names into permissions"; }
constructor(name) {
super('DiscordRole', name);
}
async permissionProvider({env, userid, permissions}) {
if (env.type != "Discord") return [];
let member = env.server.members.cache.get(userid);
if (!member) return [];
let result = [];
for (let permission of permissions) {
let role = member.roles.cache.find(r => r.name == permission);
if (role) result.push(permission);
}
return result;
}
}