Sistema de Roles - Raul125/PanelWiki GitHub Wiki

🛡️ Sistema de Roles

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.


🌐 Acceso al Sistema de Roles

📍 Navegación

  • Ruta: /admin/roles
  • Menú lateral: Administración → Sistema de Roles
  • Icono: 📻 Radio

🔐 Requisitos de Acceso

  • Autenticación obligatoria → Usuario debe estar logueado
  • Permisos específicosPermissions.Admin.Roles
  • Rol administrativo → Nivel máximo de administrador

🚫 Restricciones

  • Solo administradores superiores pueden acceder
  • Roles predeterminados no se pueden eliminar
  • Jerarquía respetada → No editar roles superiores

🎯 Funcionalidades Principales

➕ Creación de Roles

🆕 Proceso de Creación

  • Botón FAB → Flotante en esquina superior derecha
  • Diálogo especializadoCreateRoleDialog
  • Validación obligatoria → Nombre del rol requerido
  • Verificación de duplicados → No se permiten nombres repetidos

📋 Campos Configurables

  • 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

🔍 Sistema de Búsqueda y Filtrado

🔎 Búsqueda por Texto

📝 Criterios de Búsqueda

  • 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

🎛️ Filtros por Categoría

📊 Opciones de Filtrado

  • 🌐 Todos → Sin filtro aplicado
  • 👮 Staff → Solo roles de moderación
  • 💎 Donadores → Solo roles de donación
  • 👤 Regulares → Roles normales (implícito)

🎯 Lógica de Filtrado

  • IsStaff = true → Roles con permisos administrativos
  • IsDonator = true → Roles de contribuyentes
  • Combinación posible → Staff que también es donador

📊 Tabla de Roles

📋 Información Mostrada

⚖️ Columna Peso

  • 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

🏷️ Columna Nombre

  • Texto coloreado → Mismo color del rol
  • Tipografía clara → Fácil identificación
  • Ordenamiento alfabético → Disponible
  • Único en el sistema → Sin duplicados

🎭 Columna Tipo

  • Stack de chips → Múltiples tipos posibles
  • 🔵 Staff → Chip azul outlined
  • 🟣 Donador → Chip morado outlined
  • ⚪ Regular → Chip gris por defecto
  • Combinaciones → Staff + Donador posible

🎮 Columna RangoSL

  • 🔵 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

⚙️ Columna Acciones

  • Grupo de botones → Design consistente
  • ✏️ Editar rol → Modificar propiedades básicas
  • 🔑 Editar permisos → Gestión de permisos granular
  • 🗑️ Eliminar rol → Solo roles no predeterminados

⚙️ Gestión de Roles

✏️ Edición de Roles

📝 Propiedades Editables

  • 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

🎨 Opciones de Color

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

🔄 Proceso de Actualización

  1. Abrir diálogoEditRoleDialog con datos actuales
  2. Modificar campos → Cambios deseados
  3. Validar datos → Verificaciones básicas
  4. Guardar cambios → Persistir en base de datos
  5. Notificar resultado → Feedback al administrador
  6. Actualizar vista → Recargar tabla

🔑 Gestión de Permisos

📋 Editor de Permisos

  • Diálogo especializadoEditRolePermissionsDialog
  • Lista completa → Todos los permisos disponibles
  • Permisos actuales → Preseleccionados
  • Selección múltiple → Checkboxes para permisos

🎯 Tipos de 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

🔄 Lógica de Actualización

  1. Cargar permisos actuales → Del rol seleccionado
  2. Mostrar todos disponibles → Para selección
  3. Detectar cambios → Comparar selección vs actual
  4. Aplicar modificaciones → Añadir/remover permisos
  5. Persistir cambios → Guardar en base de datos
  6. Notificar resultado → Confirmación de éxito

🗑️ Eliminación de Roles

🚫 Restricciones de Eliminación

  • Roles predeterminados → No se pueden eliminar
  • Confirmación requeridaDeleteRoleDialog
  • Verificación de uso → Comprobar usuarios asignados
  • Acción irreversible → Advertencia clara

⚠️ Proceso de Eliminación

  1. Verificar permisos → Solo roles no predeterminados
  2. Mostrar confirmación → Diálogo de advertencia
  3. Confirmar acción → Usuario debe confirmar
  4. Eliminar de BD → Borrado permanente
  5. Actualizar vista → Recargar tabla
  6. Notificar resultado → Mensaje de confirmación

🎨 Características Visuales

🌈 Sistema de Colores

🎭 Identificación por Color

  • 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 y Elementos

  • 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

📊 Elementos de Tabla

🎯 Funcionalidades Avanzadas

  • Hover effects → Resaltado al pasar ratón
  • Striped rows → Filas alternadas para legibilidad
  • Dense layout → Información compacta
  • Loading states → Indicadores durante operaciones

📄 Paginación y Navegación

  • 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

⚖️ Jerarquía y Peso de Roles

📊 Sistema de Pesos

🔢 Lógica de Jerarquía

  • Mayor peso = Mayor autoridad → Orden descendente
  • Números enteros → Simplicidad en configuración
  • Orden predeterminado → Por peso descendente
  • Flexibilidad total → Pesos personalizables

👑 Ejemplos de Jerarquía

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

🎯 Aplicación Práctica

⚖️ Control de Acceso

  • 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

🔄 Integración con Otros Sistemas

💬 Sincronización con Discord

🤖 Bot de Discord

  • Roles espejados → Sincronización automática
  • Colores consistentes → Misma paleta visual
  • Permisos reflejados → Acceso coherente
  • Actualización automática → Cambios propagados

🎮 Integración SCP:SL

🎯 Rangos en Juego

  • 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

🌐 Panel Web

🔐 Control de Acceso

  • 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

🎯 Casos de Uso Comunes

👮 Gestión de Staff

➕ Nuevo Moderador

  1. Crear rol específico → "Moderador Junior"
  2. Asignar peso apropiado → Según jerarquía
  3. Configurar permisos → Tools básicas de moderación
  4. Establecer color → Identificación visual
  5. Vincular con SCP:SL → Rango correspondiente
  6. Asignar a usuario → Desde gestión de usuarios

📈 Promoción de Staff

  1. Modificar rol existente → Aumentar peso y permisos
  2. O crear nuevo rol → Para nuevo nivel
  3. Actualizar permisos → Herramientas adicionales
  4. Cambiar color → Si corresponde a nuevo nivel
  5. Sincronizar Discord → Actualización automática

💎 Sistema de Donaciones

🎁 Nuevos Donadores

  1. Crear rol de donador → "VIP Premium"
  2. Marcar como donador → IsDonator = true
  3. Color distintivo → Secondary o Warning
  4. Permisos especiales → Accesos exclusivos
  5. Beneficios en juego → SlRole correspondiente

🔧 Mantenimiento del Sistema

🧹 Limpieza de Roles

  1. Revisar roles sin usuarios → Identificar obsoletos
  2. Verificar jerarquía → Pesos coherentes
  3. Actualizar permisos → Según nuevas funcionalidades
  4. Sincronizar integrations → Discord y SCP:SL

🚨 Solución de Problemas

❌ Problemas Comunes

🚫 No Puedo Eliminar Rol

  • Verificar IsDefault → Roles predeterminados protegidos
  • Revisar usuarios asignados → Puede tener usuarios
  • Permisos insuficientes → Requiere admin superior
  • Dependencias activas → Otros sistemas usando el rol

🎨 Colores No Se Muestran

  • Caché del navegador → Refrescar página
  • Tema visual → Verificar modo claro/oscuro
  • CSS conflicts → Problemas de estilos
  • Color predeterminado → Fallback a Default

🔄 Permisos No Se Aplican

  • Cache de permisos → Reiniciar sesión
  • Sincronización → Esperar propagación
  • Jerarquía incorrecta → Verificar pesos
  • Error de configuración → Revisar asignación

⚡ Optimización de Rendimiento

🚀 Mejores Prácticas

  • No crear roles excesivos → Mantener simplicidad
  • Jerarquía clara → Pesos bien definidos
  • Permisos específicos → Solo los necesarios
  • Nombres descriptivos → Fácil identificación

💾 Gestión de Datos

  • Eliminar roles obsoletos → Limpieza regular
  • Revisar asignaciones → Usuarios con roles correctos
  • Actualizar permisos → Según evolución del sistema
  • Documentar cambios → Para futuras referencias

🔗 Enlaces Relacionados


📞 Soporte y Ayuda

🆘 Obtener Ayuda

💡 Sugerencias de Mejora

  • Nuevos tipos de roles → Proponer en Discord admin
  • Permisos adicionales → Funcionalidades nuevas
  • Mejoras de interfaz → Feedback sobre usabilidad
  • Integraciones adicionales → Otros servicios

📋 Información Técnica

  • 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

⚠️ **GitHub.com Fallback** ⚠️