Gestionando Roles de Administrador de Marketing con Filament y Bases de Datos
Este post describe cómo se ha mejorado la gestión de roles de administrador de marketing en el proyecto devlog-ist/landing. Este proyecto [descripción del proyecto no disponible en el contexto]. Anteriormente, la asignación de este rol requería acceso al servidor para editar variables de entorno. Ahora, se utiliza una base de datos y Filament para facilitar esta tarea.
El Problema Anterior
Antes, para asignar o revocar el rol de administrador de marketing, era necesario acceder directamente al servidor y modificar las variables de entorno. Esto no era práctico, especialmente para administradores que no tenían acceso directo al servidor.
La Solución
Se implementó una solución que permite a los super administradores asignar y revocar el rol de administrador de marketing directamente desde el panel de administración, utilizando Filament y una base de datos. La columna en la base de datos ahora tiene precedencia sobre la configuración, pero se mantiene una opción de fallback a la configuración para compatibilidad.
Detalles Técnicos
- Filament: Se utiliza Filament, un framework de administración para Laravel, para crear una interfaz intuitiva para gestionar los roles.
- Base de Datos: Se añadió una columna en la base de datos para indicar si un usuario tiene el rol de administrador de marketing.
- Prioridad: El sistema verifica primero la base de datos para determinar si un usuario tiene el rol. Si no se encuentra en la base de datos, se utiliza la configuración como fallback.
Un ejemplo ilustrativo de cómo se podría verificar el rol en el código:
function isMarketingAdmin(User $user): bool
{
if ($user->isMarketingAdminFromDatabase()) {
return true;
}
return config('app.marketing_admins')->contains($user->email);
}
Este código verifica primero si el usuario tiene el rol de administrador de marketing en la base de datos. Si no es así, verifica la configuración.
Beneficios
- Mayor Facilidad de Uso: Los super administradores pueden gestionar los roles de administrador de marketing sin necesidad de acceso directo al servidor.
- Mayor Seguridad: Se reduce la necesidad de compartir acceso al servidor para tareas administrativas.
- Mayor Flexibilidad: La base de datos permite una gestión más dinámica y flexible de los roles.
Conclusión
La implementación de la gestión de roles de administrador de marketing a través de Filament y una base de datos simplifica la administración y mejora la seguridad. Este cambio facilita a los super administradores la gestión de roles sin necesidad de acceso directo al servidor.