feat: implement permission checks for ManageGuild and staff roles across commands

This commit is contained in:
2025-10-04 01:10:02 -05:00
parent 3cd9efcbcb
commit 312ccc7b2a
16 changed files with 237 additions and 275 deletions

View File

@@ -2,13 +2,13 @@ import logger from "../../core/lib/logger";
import {
ModalSubmitInteraction,
MessageFlags,
PermissionFlagsBits,
EmbedBuilder,
User,
Collection,
Snowflake
} from 'discord.js';
import { prisma } from '../../core/database/prisma';
import { hasManageGuildOrStaff } from "../../core/lib/permissions";
interface UserSelectComponent {
custom_id: string;
@@ -36,11 +36,12 @@ export default {
});
}
// Verificar permisos
// Verificar permisos (ManageGuild o rol staff)
const member = await interaction.guild.members.fetch(interaction.user.id);
if (!member.permissions.has(PermissionFlagsBits.ManageGuild)) {
const allowed = await hasManageGuildOrStaff(member, interaction.guild.id, prisma);
if (!allowed) {
return interaction.reply({
content: '❌ Solo los administradores pueden gestionar puntos.',
content: '❌ Solo admins o staff pueden gestionar puntos.',
flags: MessageFlags.Ephemeral
});
}