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

29 lines
801 B
PHP

<?php
/**
* GET /api/lab/get_roles.php
* Devuelve todos los roles con sus módulos asignados.
* Solo admins.
*/
require_once __DIR__ . '/_helpers.php';
requireAdmin();
$db = Database::getInstance();
$roles = $db->fetchAll("SELECT id, name, slug, description, color, is_system, created_at FROM roles ORDER BY id ASC");
foreach ($roles as &$role) {
$mods = $db->fetchAll(
"SELECT module_slug FROM role_modules WHERE role_id = ? ORDER BY module_slug",
[$role['id']]
);
$role['modules'] = array_column($mods, 'module_slug');
$role['is_system'] = (bool)$role['is_system'];
$role['user_count'] = (int)$db->fetch(
"SELECT COUNT(*) AS c FROM admin_users WHERE role_id = ?",
[$role['id']]
)['c'];
}
unset($role);
jsonOk(['roles' => $roles]);