Skip to content

Commit 150a707

Browse files
Opção para sincronizar apenas siglas
1 parent 82a8f90 commit 150a707

File tree

4 files changed

+36
-7
lines changed

4 files changed

+36
-7
lines changed

.env.example

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -169,3 +169,12 @@ WSFOTO_PASS=
169169
# Por default está 1 (true) pois assim estava no Ldap/User.php
170170
# Válido para criação de contas sincronizadas
171171
OBRIGA_TROCAR_SENHA_NO_WINDOWS=1
172+
173+
# Sincronizar grupos usando nome por extenso ou somente siglas?
174+
# opções: extenso, siglas
175+
TIPO_NOMES_GRUPOS='extenso'
176+
177+
# No login ou na sincronização remover todos grupos, excetos
178+
# os que estão em notRemoveGroups.
179+
# 0 - não remover todos grupo, 1 - remover todos grupos
180+
REMOVE_ALL_GROUPS=0

app/Ldap/Group.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,9 @@ public static function addMember(LdapUser $user, array $groups)
4343

4444
$groups = array_merge($keep_groups, $groups);
4545

46-
// Vamos remover todos grupos e adicionar apenas os necessários
47-
// porque remover todos????? Não vamos mexer com os grupos existentes
48-
// $user->removeAllGroups();
46+
if (config('web-ldap-admin.removeAllGroups')) {
47+
$user->removeAllGroups();
48+
}
4949

5050
//remove posições vazias, repetidas e sujas
5151
$groups = array_map('trim', $groups);

app/Ldap/User.php

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -404,7 +404,19 @@ public static function criarOuAtulizarPorArray($pessoa, $metodo = '')
404404

405405
$attr['descricao'] = 'Sincronizado com o replicado';
406406

407-
$grupos = ($pessoa['tipvinext'] != 'Externo') ? Pessoa::vinculosSetores($pessoa['codpes'], config('web-ldap-admin.replicado_unidade')) : [$pessoa['tipvinext']];
407+
if( $pessoa['tipvinext'] != 'Externo') {
408+
if(config('web-ldap-admin.tipoNomesGrupos') == 'extenso'){
409+
$grupos = Pessoa::vinculosSetores($pessoa['codpes'], config('web-ldap-admin.replicado_unidade'));
410+
}
411+
if(config('web-ldap-admin.tipoNomesGrupos') == 'siglas'){
412+
$setores = Pessoa::obterSiglasSetoresAtivos($pessoa['codpes']);
413+
$vinculos = Pessoa::obterSiglasVinculosAtivos($pessoa['codpes']);
414+
$grupos = array_merge($setores,$vinculos);
415+
}
416+
} else {
417+
$grupos = [$pessoa['tipvinext']];
418+
}
419+
408420
$grupos = array_unique($grupos);
409421
sort($grupos);
410422

config/web-ldap-admin.php

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,15 @@
1212

1313
# Desativar desligados na sincronização (true/false default)
1414
'desativarDesligados' => env('DESATIVAR_DESLIGADOS', false),
15-
16-
# foi desativado em 2/2022. Nesse caso ele mantem os grupos
17-
# existentes e adiciona se necessário os demais grupos
15+
16+
# Grupos que não devem ser removidos
1817
'notRemoveGroups' => env('NOT_REMOVE_GROUPS', 'LOCAL_ADMIN,STI'),
1918

19+
# No login ou na sincronização remover todos grupos, excetos
20+
# os que estão em notRemoveGroups.
21+
# 0 - não remover todos grupo, 1 - remover todos grupos
22+
'removeAllGroups' => env('REMOVE_ALL_GROUPS',0),
23+
2024
# 0 = ninguém, 1 = todos, 2 = servidores (funcionários e docentes)
2125
'solicitaContaAdmin' => env('SOLICITA_CONTA_ADMIN', 0),
2226

@@ -55,4 +59,8 @@
5559
# Por default está 1 (true) pois assim estava no Ldap/User.php
5660
# Válido para criação de contassincronizadas
5761
'obrigaTrocarSenhaNoWindows' => env('OBRIGA_TROCAR_SENHA_NO_WINDOWS', 1),
62+
63+
# Sincronizar grupos usando nome por extenso ou somente siglas?
64+
# extenso, siglas
65+
'tipoNomesGrupos' => env('TIPO_NOMES_GRUPOS', 'extenso'),
5866
];

0 commit comments

Comments
 (0)