Imagem de capa do projeto: Nexus Grupos EM ANDAMENTO

Resumo técnico

Plugin nativo do NEXUS para gerenciar grupos de usuários e aplicar ACL aos plugins core. Permissões de tarefas, perfil, IA e acesso por plugin são combinadas entre os grupos do operador, enquanto administradores e autenticações internas preservam acesso; a interface mantém membros, grupos protegidos e eventos de webhook.

Escopo executado

  • groups_init_db() — DDL e seed no próprio plugin (sem install.sql): cria nx_groups e nx_group_members, auto-migration da coluna permissions, seed de admin/members com permissões padrão e associação automática dos usuários existentes por role.
  • 4 actions de API via PluginManager::registerApiAction — groups_list (grupos + core_plugins para a UI, compatível com payload legado array), groups_save (cria com uniqid('grp_') ou edita; protege nome dos grupos de sistema), groups_delete (bloqueia admin/members), groups_members_save (diff de adicionados/removidos + upsert).
  • ACL por plugin core: groups_core_plugins() lista plugins is_core/protected/categoria NEXUS ou Administração; groups_normalize_permissions() garante plugin_access[slug] = { functions, tasks } para todos (default: functions ← access_plugins/access_admin; tasks ← view_tasks/access_admin).
  • groups_user_plugin_flag($username, $slug, flag) — OR entre grupos, null quando nenhum grupo define política, bypass em api_master_auth/api_node_auth.
  • Integração core: PluginManager::userHasAccess() (core/plugin-loader.php:315) → groups_user_plugin_flag(...,'functions') (bloqueia aba/actions); hooks de tarefas (linhas 228-251) → flag 'tasks' (filtros task_read/comment_*); Admin de sistema sempre liberado.
  • Integração usuários: users.php enriquece a listagem de usuários com os grupos (JOIN nx_group_members/nx_groups) e associa grupo no user_save.
  • Webhooks: webhook.php declara 5 eventos — group.created, group.updated, group.deleted, group.member_added, group.member_removed — disparados via webhook_dispatch() no backend (diff de membros no group_members_save).
  • UI Alpine.js: tab.php (169 linhas) — tabela ultra compacta com busca, paginação client-side (5/10/20/50), badges de membros por role, badge "Sistema" para grupos padrão, botão "Novo Grupo" e ações editar/excluir (excluir oculto em admin/members); modals/group.php (22 KB) — modal com seletor de operadores (busca), flags de permissão e grid plugin_access[p.slug] por plugin core (com x-if que evita erro do Alpine com o modal fechado).
  • Registros: registerTab("groups", "Grupos", "users", tab.php, "NEXUS"), registerDoc("groups", "Gerenciamento de Grupos", "users", doc.md), registerModal("group", modals/group.php).

Stack e ferramentas

  • PHP 8 (sem framework)
  • MySQL 8 (nx_groups, nx_group_members)
  • Alpine.js + Tailwind CSS
  • Sistema de plugins do NEXUS (PluginManager::registerTab/registerDoc/registerModal/registerApiAction)
  • Webhooks do NEXUS (webhook_dispatch)

Tags operacionais

  • Grupos
  • Permissões
  • ACL
  • Operadores
  • RBAC
  • Plugin NEXUS
  • Webhooks

Resultado operacional

  • RBAC completo do NEXUS: grupos de operadores com permissões granulares e ACL por plugin core (functions/tasks) avaliado diretamente pelo PluginManager::userHasAccess — sem plugin, todo usuário tinha acesso a todas as abas/actions.
  • Admin de sistema sempre passa e grupos admin/members são protegidos (nome imutável, exclusão bloqueada), garantindo que nunca exista um painel sem grupo master.
  • União OR entre grupos: um operador herda a maior permissão entre todos os grupos que participa; null (nenhuma política) mantém o comportamento padrão sem restringir.
  • Webhooks de ciclo de vida (criar/editar/excluir grupo, adicionar/remover operador) permitem automação externa e auditoria das mudanças de acesso.
  • Migração zero: DDL + seed executados no carregamento do plugin, com auto-migration da coluna permissions em instalações antigas.

Andamento no GitHub (issues)

Painel em tempo real com as issues mais recentes do repositório.

abertas (amostra): -- fechadas (amostra): -- base: -- ultimas issues

carregando andamento...

Resultados reais

Plugin nativo do NEXUS (is_core) de grupos de usuários e níveis de acesso: ACL por plugin core (functions/tasks), permissões granulares, associação de operadores e eventos de webhook — com OR entre grupos e Admin de sistema sempre liberado.

Arquitetura e organização

Execução e operação

O projeto segue fluxo reprodutível de execução com validação técnica em ambiente de produção/similar.

Screenshots

Falar sobre este projeto

Aplique este modelo no seu ambiente e acelere a entrega com consistência técnica.