Sistema de Roles - Raul125/PanelWiki GitHub Wiki
El sistema de roles es el núcleo de la gestión de permisos y jerarquía en NeonCommunity. Permite crear, modificar y administrar roles con diferentes niveles de acceso, permisos específicos y configuraciones personalizadas para staff, donadores y usuarios regulares.
-
Ruta:
/admin/roles
- Menú lateral: Administración → Sistema de Roles
- Icono: 📻 Radio
- Autenticación obligatoria → Usuario debe estar logueado
-
Permisos específicos →
Permissions.Admin.Roles
- Rol administrativo → Nivel máximo de administrador
- Solo administradores superiores pueden acceder
- Roles predeterminados no se pueden eliminar
- Jerarquía respetada → No editar roles superiores
- Botón FAB → Flotante en esquina superior derecha
-
Diálogo especializado →
CreateRoleDialog
- Validación obligatoria → Nombre del rol requerido
- Verificación de duplicados → No se permiten nombres repetidos
- Nombre del rol → Identificador único
- Color visual → Para identificación en la UI
- Peso del rol → Determina jerarquía
- Tipo de rol → Staff, Donador, Regular
- Rango SL → Rol correspondiente en SCP:SL
- Nombre del rol → Búsqueda parcial
- Rango SL → SlRole si está configurado
- Búsqueda instantánea → Resultados en tiempo real
- Campo limpiable → Icono de búsqueda
- 🌐 Todos → Sin filtro aplicado
- 👮 Staff → Solo roles de moderación
- 💎 Donadores → Solo roles de donación
- 👤 Regulares → Roles normales (implícito)
- IsStaff = true → Roles con permisos administrativos
- IsDonator = true → Roles de contribuyentes
- Combinación posible → Staff que también es donador
- Chip coloreado → Color específico del rol
- Valor numérico → Determina jerarquía
- Orden descendente → Mayor peso = mayor autoridad
- Identificación rápida → Visual inmediata
- Texto coloreado → Mismo color del rol
- Tipografía clara → Fácil identificación
- Ordenamiento alfabético → Disponible
- Único en el sistema → Sin duplicados
- Stack de chips → Múltiples tipos posibles
- 🔵 Staff → Chip azul outlined
- 🟣 Donador → Chip morado outlined
- ⚪ Regular → Chip gris por defecto
- Combinaciones → Staff + Donador posible
- 🔵 Con rango → Chip azul con nombre del rango
- ⚪ Sin rango → "Sin rango" en gris
- Integración SCP:SL → Roles del juego
- Sincronización → Con servidor de juego
- Grupo de botones → Design consistente
- ✏️ Editar rol → Modificar propiedades básicas
- 🔑 Editar permisos → Gestión de permisos granular
- 🗑️ Eliminar rol → Solo roles no predeterminados
- Nombre del rol → Cambiar identificador
- Color visual → Selección de paleta predefinida
- Peso jerárquico → Modificar importancia
- Tipo de rol → Staff, Donador, configuraciones
- Rango SL → Asociación con SCP:SL
Paleta disponible:
- 🔵 Primary → Azul principal
- 🟣 Secondary → Morado secundario
- 🟢 Tertiary → Color terciario
- 🔵 Info → Azul informativo
- 🟢 Success → Verde de éxito
- 🟡 Warning → Amarillo de advertencia
- 🔴 Error → Rojo de error
- ⚫ Dark → Negro/oscuro
- ⚪ Default → Gris predeterminado
-
Abrir diálogo →
EditRoleDialog
con datos actuales - Modificar campos → Cambios deseados
- Validar datos → Verificaciones básicas
- Guardar cambios → Persistir en base de datos
- Notificar resultado → Feedback al administrador
- Actualizar vista → Recargar tabla
-
Diálogo especializado →
EditRolePermissionsDialog
- Lista completa → Todos los permisos disponibles
- Permisos actuales → Preseleccionados
- Selección múltiple → Checkboxes para permisos
Categorías principales:
- 👮 Admin → Permisos administrativos generales
- 🎮 ScpSl → Permisos específicos del juego
- 💬 Discord → Permisos de integración Discord
- 📊 Reportes → Gestión de reportes
- ⚖️ Moderación → Herramientas de moderación
- Cargar permisos actuales → Del rol seleccionado
- Mostrar todos disponibles → Para selección
- Detectar cambios → Comparar selección vs actual
- Aplicar modificaciones → Añadir/remover permisos
- Persistir cambios → Guardar en base de datos
- Notificar resultado → Confirmación de éxito
- Roles predeterminados → No se pueden eliminar
-
Confirmación requerida →
DeleteRoleDialog
- Verificación de uso → Comprobar usuarios asignados
- Acción irreversible → Advertencia clara
- Verificar permisos → Solo roles no predeterminados
- Mostrar confirmación → Diálogo de advertencia
- Confirmar acción → Usuario debe confirmar
- Eliminar de BD → Borrado permanente
- Actualizar vista → Recargar tabla
- Notificar resultado → Mensaje de confirmación
- Cada rol tiene color único → Diferenciación visual
- Consistencia global → Mismo color en toda la plataforma
- Paleta limitada → 9 colores predefinidos
- Contraste adecuado → Legibilidad garantizada
- Chips de peso → Color del rol
- Texto del nombre → Color del rol
- Chips de tipo → Colores funcionales (Staff=Primary, Donador=Secondary)
- Chips de rango SL → Color Info para todos
- Hover effects → Resaltado al pasar ratón
- Striped rows → Filas alternadas para legibilidad
- Dense layout → Información compacta
- Loading states → Indicadores durante operaciones
- Opciones de página → 10, 15, 20, 30 elementos
- Navegación intuitiva → Botones de página
- Contador total → Información contextual
- Estado empty → Mensaje cuando no hay resultados
- Mayor peso = Mayor autoridad → Orden descendente
- Números enteros → Simplicidad en configuración
- Orden predeterminado → Por peso descendente
- Flexibilidad total → Pesos personalizables
Peso 100 → Owner/Fundador
Peso 90 → Administrador Senior
Peso 80 → Administrador
Peso 70 → Moderador Senior
Peso 60 → Moderador
Peso 50 → Helper
Peso 40 → Donador VIP
Peso 30 → Donador Premium
Peso 20 → Donador
Peso 10 → Usuario Verificado
Peso 1 → Usuario Regular
- Permisos heredados → Roles superiores acceden a más
- Restricciones visuales → Botones deshabilitados
- Validaciones de seguridad → Backend y frontend
- Logs de auditoría → Registro de cambios
- Roles espejados → Sincronización automática
- Colores consistentes → Misma paleta visual
- Permisos reflejados → Acceso coherente
- Actualización automática → Cambios propagados
- SlRole configurado → Rango específico en servidor
- Permisos de juego → Comandos y funcionalidades
- Reconocimiento automático → Por ID de usuario
- Sincronización continua → Actualizaciones en tiempo real
- Rutas protegidas → Por permisos de rol
- Elementos condicionales → Mostrar según rol
- Menús dinámicos → Adaptados a permisos
- Experiencia personalizada → Según nivel de acceso
- Crear rol específico → "Moderador Junior"
- Asignar peso apropiado → Según jerarquía
- Configurar permisos → Tools básicas de moderación
- Establecer color → Identificación visual
- Vincular con SCP:SL → Rango correspondiente
- Asignar a usuario → Desde gestión de usuarios
- Modificar rol existente → Aumentar peso y permisos
- O crear nuevo rol → Para nuevo nivel
- Actualizar permisos → Herramientas adicionales
- Cambiar color → Si corresponde a nuevo nivel
- Sincronizar Discord → Actualización automática
- Crear rol de donador → "VIP Premium"
- Marcar como donador → IsDonator = true
- Color distintivo → Secondary o Warning
- Permisos especiales → Accesos exclusivos
- Beneficios en juego → SlRole correspondiente
- Revisar roles sin usuarios → Identificar obsoletos
- Verificar jerarquía → Pesos coherentes
- Actualizar permisos → Según nuevas funcionalidades
- Sincronizar integrations → Discord y SCP:SL
- Verificar IsDefault → Roles predeterminados protegidos
- Revisar usuarios asignados → Puede tener usuarios
- Permisos insuficientes → Requiere admin superior
- Dependencias activas → Otros sistemas usando el rol
- Caché del navegador → Refrescar página
- Tema visual → Verificar modo claro/oscuro
- CSS conflicts → Problemas de estilos
- Color predeterminado → Fallback a Default
- Cache de permisos → Reiniciar sesión
- Sincronización → Esperar propagación
- Jerarquía incorrecta → Verificar pesos
- Error de configuración → Revisar asignación
- No crear roles excesivos → Mantener simplicidad
- Jerarquía clara → Pesos bien definidos
- Permisos específicos → Solo los necesarios
- Nombres descriptivos → Fácil identificación
- Eliminar roles obsoletos → Limpieza regular
- Revisar asignaciones → Usuarios con roles correctos
- Actualizar permisos → Según evolución del sistema
- Documentar cambios → Para futuras referencias
- Gestión de Usuarios - Asignación de roles a usuarios
- Logs de Auditoría - Registro de cambios en roles
- Sincronización con Discord y Steam - Integración de roles
- Sincronización con SCP-SL - Rangos en el juego
- Panel de Moderación - Herramientas por rol
- Configuración del Sistema - Ajustes globales de roles
- Canal Admin Discord → [discord.neoncommunity.eu](https://discord.neoncommunity.eu/)
-
Documentación técnica →
/swagger
para desarrolladores - Issues GitHub → Reportar problemas del sistema
- Nuevos tipos de roles → Proponer en Discord admin
- Permisos adicionales → Funcionalidades nuevas
- Mejoras de interfaz → Feedback sobre usabilidad
- Integraciones adicionales → Otros servicios
- Modelo de datos → Estructura de roles y permisos
- Sistema de herencia → Lógica de permisos
- API endpoints → Para integraciones externas
- Validaciones de seguridad → Restricciones implementadas
🛡️ Estructura con Orden, Gobierna con Justicia
¿Necesitas ayuda con el sistema de roles? Consulta en el canal admin de [Discord](https://discord.neoncommunity.eu/) o revisa Gestión de Usuarios