bindService(); $entry = $ldapObj->findUserByLogin($login); $nome = $entry['displayname'][0] ?? null; if ($entry === null) { $erro = 'Login não encontrado no AD. Confira e tente novamente.'; } else { AdminRepository::add($login, $nome, $papel, $quemFez); AuditLog::record($quemFez, 'adicionou_admin', $login, "papel={$papel}"); $ok = 'Administrador adicionado com sucesso.'; } } catch (Throwable $e) { $erro = 'Erro ao consultar o AD: ' . $e->getMessage(); } } } elseif ($acao === 'remover') { $id = (int) ($_POST['id'] ?? 0); $admin = AdminRepository::find($id); if (!$admin) { $erro = 'Administrador não encontrado.'; } elseif ($admin['papel'] === 'admin' && AdminRepository::countActiveAdmins($id) === 0) { $erro = 'Não é possível remover o último administrador ativo do sistema.'; } else { AdminRepository::setActive($id, false); AuditLog::record($quemFez, 'removeu_admin', $admin['login']); $ok = 'Administrador removido (desativado) com sucesso.'; } } elseif ($acao === 'reativar') { $id = (int) ($_POST['id'] ?? 0); $admin = AdminRepository::find($id); if ($admin) { AdminRepository::setActive($id, true); AuditLog::record($quemFez, 'reativou_admin', $admin['login']); $ok = 'Administrador reativado.'; } } } $admins = AdminRepository::all(); View::header('Administradores'); ?>

Administradores do sistema

Login Nome Papel Status Ações
Ativo Inativo