Files
whatsapp/api/lab/delete_role.php
T
2026-03-10 18:42:51 -05:00

29 lines
923 B
PHP

<?php
/**
* POST /api/lab/delete_role.php
* Elimina un rol no-sistema.
* Solo admins.
*
* Body JSON: { id }
*/
require_once __DIR__ . '/_helpers.php';
requireMethod('POST');
requireAdmin();
$body = inputJson();
$id = (int)($body['id'] ?? 0);
if (!$id) jsonError('ID de rol requerido');
$db = Database::getInstance();
$role = $db->fetch("SELECT id, is_system, slug FROM roles WHERE id = ?", [$id]);
if (!$role) jsonError('Rol no encontrado', 404);
if ($role['is_system']) jsonError('Los roles del sistema no se pueden eliminar');
// Reasignar usuarios que tengan este rol al rol admin (id=1) antes de borrar
$db->query("UPDATE admin_users SET role_id = 1, role = 'admin' WHERE role_id = ?", [$id]);
// La FK ON DELETE CASCADE borra role_modules automáticamente
$db->query("DELETE FROM roles WHERE id = ?", [$id]);
jsonOk([], 'Rol eliminado. Los usuarios afectados fueron reasignados al rol Administrador.');