/[sudobot]/trunk/src/services/Auth.ts
ViewVC logotype

Annotation of /trunk/src/services/Auth.ts

Parent Directory Parent Directory | Revision Log Revision Log


Revision 393 - (hide annotations)
Mon Jul 29 17:29:59 2024 UTC (8 months, 1 week ago) by rakin
File MIME type: application/typescript
File size: 1897 byte(s)
style: add license comments (#77)

* style: add license commits

* fix: shebang errors
1 rakin 393 /**
2     * This file is part of SudoBot.
3     *
4     * Copyright (C) 2021-2022 OSN Inc.
5     *
6     * SudoBot is free software; you can redistribute it and/or modify it
7     * under the terms of the GNU Affero General Public License as published by
8     * the Free Software Foundation, either version 3 of the License, or
9     * (at your option) any later version.
10     *
11     * SudoBot is distributed in the hope that it will be useful, but
12     * WITHOUT ANY WARRANTY; without even the implied warranty of
13     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14     * GNU Affero General Public License for more details.
15     *
16     * You should have received a copy of the GNU Affero General Public License
17     * along with SudoBot. If not, see <https://www.gnu.org/licenses/>.
18     */
19    
20 rakin 51 import { GuildMember } from "discord.js";
21 rakin 58 import BaseCommand from "../utils/structures/BaseCommand";
22 rakin 226 import Service from "../utils/structures/Service";
23 rakin 51
24 rakin 226 export default class Auth extends Service {
25 rakin 58 async verify(member: GuildMember, command: BaseCommand): Promise<boolean> {
26 rakin 266 if (command.ownerOnly && !this.client.config.props.global.owners.includes(member.user.id)) {
27     return false;
28     }
29    
30 rakin 51 const cmds: string[] = await this.client.config.get('global_commands');
31    
32 rakin 58 if (cmds.indexOf(command.getName()) !== -1) {
33 rakin 51 return true;
34     }
35    
36     if (await member.roles.cache.has(await this.client.config.get('mod_role'))) {
37     let restricted: string[] = [];
38     const roleCommands: { [key: string]: string[] } = await this.client.config.get('role_commands');
39    
40     for (const roleID in roleCommands) {
41     if (await member.roles.cache.has(roleID)) {
42     restricted = await roleCommands[roleID];
43     break;
44     }
45     }
46    
47 rakin 58 return restricted.indexOf(command.getName()) === -1;
48 rakin 51 }
49    
50     return false;
51     }
52     };

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26