Commit Graph

9 Commits

Author SHA1 Message Date
8213555ce8 Corrige handler do campo field_user_department para default:group
Substitui handler: views (referenciando view inexistente 'departments')
por handler: default:group com target_bundles, eliminando o erro
'Attempt to create a field without a field_name' na instalação.
0.0.3
2026-03-25 13:37:19 -03:00
f6bd14935f Remove config de display de usuário do ldap_departments_sync
Esse config/optional redefinía core.entity_view_display.user.user.default
de forma conflitante com instalações existentes. A configuração do display
passa a ser responsabilidade da recipe imecc-ldap-departments.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
0.0.2
2026-03-25 11:22:20 -03:00
3a415cb5b6 Adiciona composer.json ao módulo base e sub-módulos
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
0.0.1
2026-03-25 10:22:17 -03:00
4a65619c27 Adiciona submódulo ldap_courses_sync para sincronização de cursos via LDAP
Cria o módulo modules/ldap_courses_sync/ seguindo o mesmo padrão do
ldap_research_groups_sync, com bundle `course`, campos field_course_*
e field_user_courses, sincronização de membros via atributo LDAP, e
aba "Courses Sync" no painel unificado.

Também registra `courses` no módulo pai (routing, UnifiedAccessRulesForm
e GlobalAccessRuleForm) para suporte a access rules unificadas.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-02 13:49:47 -03:00
7e338677a3 Move submódulos para modules/ seguindo convenção Drupal
ldap_departments_sync/ e ldap_research_groups_sync/ movidos para
modules/, padrão adotado por módulos contrib como Drupal Commerce.
Nenhum arquivo PHP ou YAML alterado — o Drupal descobre módulos
recursivamente pelo .info.yml independente do caminho.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-02 09:22:22 -03:00
c66edef0ac Corrige criação de regra vazia ao clicar em Cancelar no modal
O botão "Cancel" usava #type => 'submit' com #submit => []. No Drupal,
um array #submit vazio é falsy, então FormBuilder cai de volta nos
handlers de nível de formulário e chama submitForm() — que salvava
uma regra vazia ignorando a validação (#limit_validation_errors => []).

A solução é #type => 'button', cujo #executes_submit_callback é FALSE
por padrão, impedindo qualquer submit handler de rodar.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-02 09:15:45 -03:00
d1bd5dade8 Adiciona traduções pt-br para novos arquivos do módulo pai
Inclui strings de LdapGroupsSyncController, UnifiedAccessRulesForm e
GlobalAccessRuleForm que não estavam cobertas pelo .po existente:
módulo/descrição/status da overview, campo "Tipo de Grupo", opções
"Departamentos"/"Grupos de Pesquisa" e mensagens de tabela vazia.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-02 09:05:50 -03:00
72813e0f30 Centraliza configuração de access rules no módulo pai
- Adiciona rota, menu e abas unificados em ldap_groups_sync
- Cria LdapGroupsSyncController (overview dos submódulos)
- Cria UnifiedAccessRulesForm: tabela combinada de regras de todos os
  submódulos habilitados, com único botão "Add Rule"
- Cria GlobalAccessRuleForm: estende AccessRuleFormBase com parâmetro
  {group_type} na rota; exibe select "Group Type" com AJAX rebuild ao
  criar novas regras (desabilitado ao editar)
- Remove rotas access_rules e access_rule_form dos submódulos
- Remove entradas de menu dos submódulos (módulo pai fornece a entrada)
- Atualiza abas dos submódulos para base_route: ldap_groups_sync.config

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-02 09:03:10 -03:00
346b897e25 Inicializa módulo base ldap_groups_sync
Cria super-módulo com infraestrutura compartilhada de regras de acesso
para os módulos de sincronização LDAP de grupos.

- GroupAccessRulesService: serviço parametrizável por config name
- AccessRulesFormBase: listagem/remoção de regras (classe abstrata)
- AccessRuleFormBase: formulário modal de criação/edição (classe abstrata)
- Sub-módulos ldap_departments_sync e ldap_research_groups_sync refatorados
  para estender as classes base com subclasses mínimas
- Traduções pt-br centralizadas em ldap_groups_sync.pt-br.po

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-28 09:55:54 -03:00