Revocar Sanciones - Raul125/PanelWiki GitHub Wiki
El sistema de revocación de sanciones permite a los moderadores levantar, cancelar o eliminar bans, warns y mutes aplicados previamente. Todas las revocaciones requieren justificación y quedan registradas permanentemente en los logs de auditoría.
- Desde listas de sanciones → Botones específicos en cada fila
- Desde perfil de jugador → Historial de sanciones activas
- Desde reportes de apelación → Enlaces directos
- Desde panel de moderación → Acceso rápido por sanción
- Rol de Staff en Discord
- Permisos de revocación asignados
- Autorización específica → Algunos casos requieren permisos especiales
- Sanción válida → Solo sanciones activas o revocables
- Jerarquía de staff → Limitaciones según rango
- Tiempo límite → Algunas sanciones tienen períodos de gracia
- Justificación obligatoria → Siempre requerida
- Una sola vez → Las revocaciones no se pueden deshacer
Función: BanManager.Unban()
- Propósito → Levantar ban manteniéndolo en historial
- Estado resultante → Ban marcado como "Cancelado"
- Historial → Mantiene registro de la sanción original
- Acceso inmediato → Usuario puede volver a jugar
Función: BanManager.Unban(delete: true)
- Propósito → Eliminación física del registro
- Estado resultante → Ban completamente borrado
- Historial → Solo logs de auditoría permanecen
- Casos especiales → Errores graves o sanciones erróneas
UnBanDialog
incluye:
- Información del ban → Usuario, motivo, duración, staff
- Opciones disponibles → Desbanear o eliminar
- Campo de justificación → Motivo obligatorio
- Advertencias → Sobre consecuencias de la acción
Función: WarnManager.UnWarn()
- Propósito → Eliminar advertencia del historial
- Estado resultante → Warn marcado como retirado
- Botón específico → "Retirar Advertencia" (color verde)
- Impacto → Reduce cuenta de advertencias del usuario
DeleteWarnDialog
incluye:
- Datos del warn → Usuario, motivo, fecha, staff original
- Campo de razón → Justificación obligatoria
- Confirmación segura → Evita eliminaciones accidentales
- Advertencia → Acción no reversible
Función: MuteManager.UnMute()
- Propósito → Restaurar capacidades de comunicación
- Estado resultante → Mute marcado como levantado
- Botón específico → "Retirar Muteo" con ícono VolumeUp
- Efecto inmediato → Usuario puede comunicarse nuevamente
DeleteMuteDialog
incluye:
- Información del mute → Tipo, duración, motivo, staff
- Tiempo restante → Si estaba activo
- Justificación → Campo obligatorio
- Confirmación → Verificación de la acción
En gestores de sanciones:
- Botón "Desbanear" → Verde con ícono RemoveCircle
- Botón "Retirar Advertencia" → Verde con ícono RemoveCircle
- Botón "Retirar Muteo" → Verde con ícono VolumeUp
- Solo visible → En sanciones activas o válidas
En historial del jugador:
- Sanciones activas → Destacadas visualmente
- Acceso directo → Botones de revocación disponibles
- Contexto completo → Ver historial antes de revocar
Todos los diálogos incluyen:
- Datos de la sanción → ID, tipo, fecha de aplicación
- Usuario afectado → Nombre, avatar, ID
- Staff original → Quién aplicó la sanción
- Motivo original → Razón completa de la sanción
- Estado actual → Activa, tiempo restante, etc.
Obligatorio en todos los casos:
- Label claro → "Motivo de la revocación"
- Campo de texto → Hasta 200 caracteres
- Placeholder → "Explica por qué se revoca esta sanción"
- Validación → No puede estar vacío
1. Validar permisos de staff
2. Verificar estado de sanción
3. Aplicar revocación en base de datos
4. Actualizar estado del usuario
5. Crear log de auditoría automático
6. Notificar resultado al moderador
7. Actualizar interfaces relacionadas
8. Sincronizar con Discord/juego si necesario
Mensajes de confirmación:
- Ban revocado → "Usuario [nombre] desbaneado correctamente"
- Warn retirado → "Advertencia eliminada correctamente"
- Mute levantado → "Mute eliminado correctamente"
- Errores → Mensajes específicos del problema
Cada revocación genera automáticamente:
- ID de la sanción → Identificador único original
- Tipo de revocación → Desban, retire warn, unmute
- Staff revocador → Quién realizó la revocación
- Fecha y hora → Timestamp exacto de la acción
- Justificación → Motivo completo de la revocación
- Estado anterior → Información de la sanción original
- Método utilizado → Desbanear vs eliminar (para bans)
Cada tipo usa su servicio:
-
ISlActionLogService.LogBanDeletedAsync
→ Para bans revocados -
ISlActionLogService.LogWarnDeletedAsync
→ Para warns retirados -
ISlActionLogService.LogMuteDeletedAsync
→ Para mutes levantados
- Línea temporal → Aplicación → Revocación
- Staff involucrado → Quién aplicó y quién revocó
- Justificaciones → Motivo original vs motivo de revocación
- Estados → Progresión completa de la sanción
- Tasa de revocación → % de sanciones revocadas
- Staff más activo → Quién revoca más sanciones
- Razones comunes → Motivos frecuentes de revocación
- Tiempo promedio → Entre aplicación y revocación
Para Bans:
- 🔴 Banned → Sanción activa
- ✅ Unbanned → Revocada/cancelada
- 🗑️ Deleted → Eliminada físicamente
Para Warns:
-
⚠️ Active → Advertencia vigente - 🗑️ Removed → Retirada por staff
Para Mutes:
- 🔇 Active → Silenciamiento vigente
- ⏱️ Expired → Expirado por tiempo
- 🔊 Lifted → Levantado por staff
En las listas:
- Chips de estado → Con colores específicos
- Iconos descriptivos → Según tipo de estado
- Tooltips informativos → Detalles adicionales
- Filtros por estado → Visualizar solo activos/revocados
- Revocaciones por período → Diarias, semanales, mensuales
- Tipos más revocados → Bans vs warns vs mutes
- Staff más activo → Quién revoca con mayor frecuencia
- Razones comunes → Análisis de justificaciones
- Sanciones problemáticas → Que requieren frecuente revocación
- Calidad de moderación → Ratio aplicación/revocación
- Tiempos de respuesta → Velocidad de corrección de errores
- Error de moderación → Sanción aplicada incorrectamente
- Nueva evidencia → Información que exonera al jugador
- Sanción desproporcionada → Castigo excesivo para la infracción
- Apelación válida → Jugador demuestra inocencia
- Cambio de circunstancias → Situación original resuelta
- Error técnico → Problemas del sistema
- Duplicación → Sanciones aplicadas múltiples veces
- Presión de jugadores → Popularidad o amistades
- Arrepentimiento personal → Cambio de opinión sin base
- Favoritismo → Trato preferencial
- Peticiones sin fundamento → Apelaciones sin evidencia
- Conveniencia → Evitar conflictos
- "Revisión de evidencia adicional demuestra que el usuario no cometió freekill"
- "Error en identificación del jugador - sanción aplicada al usuario incorrecto"
- "Apelación válida con evidencia en video que contradice el reporte original"
- "Sanción duplicada por error técnico - manteniendo solo la primera aplicación"
- "Nueva información indica que la infracción fue malinterpretada"
- "El usuario me pidió que lo desbanee"
- "Creo que ya estuvo suficiente tiempo baneado"
- "Error"
- "Cambio de opinión"
- "Presión de la comunidad"
- ¿Hay evidencia sólida? → Base objetiva para la revocación
- ¿Es mi responsabilidad? → Autorización para revocar
- ¿He revisado el contexto completo? → Historial del usuario
- ¿La justificación es clara? → Motivo bien documentado
- ¿He consultado con otros staff? → En casos complejos
- Acceso restaurado → Usuario puede volver al juego/chat
- Historial modificado → Estado cambia en base de datos
- Notificaciones → Usuario puede recibir notificación
- Sincronización → Cambios aplicados en Discord/juego
- Conteos afectados → Estadísticas de sanciones activas
- Métricas de staff → Ratio de revocaciones
- Análisis de tendencias → Patrones de moderación
- Reportes administrativos → Informes de actividad
- Logs públicos → Visibles para otros staff
- Justificación requerida → Motivo documentado
- Trazabilidad → Historial completo inmutable
- Responsabilidad → Acción atribuida al staff
- Consistencia → Mismo criterio para todos
- Imparcialidad → Sin favoritismos
- Proporcionalidad → Revocación apropiada
- Justicia → Corrección de errores legítimos
- Período de gracia → Tiempo límite para revocaciones
- Sanciones muy antiguas → Pueden no ser revocables
- Sanciones automatizadas → Restricciones especiales
- Estados finales → Algunas revocaciones son permanentes
- Jerarquía de staff → No todos pueden revocar todo
- Sanciones propias → Limitaciones para revocar tus sanciones
- Casos especiales → Sanciones que requieren permisos específicos
- Aprobación superior → Algunos casos necesitan autorización
- Panel de Moderación - Centro de control para staff
- Editar Sanciones - Alternativa a la revocación
- Crear Ban - Sistema de baneos con información de revocación
- Crear Warn - Sistema de advertencias revocables
- Crear Mute - Sistema de silenciamientos revocables
- Logs de Auditoría - Registro completo de revocaciones
- Perfiles de Jugadores - Ver historial de sanciones revocadas
- Gestión de Reportes - Contexto para apelaciones
🔄 Revoca con Justicia, Documenta con Precisión
¿Dudas sobre revocación de sanciones? Pregunta en el canal staff de Discord o consulta Panel de Moderación