Skip to content

Commit 3e6c329

Browse files
hotfix para permitir pessoas externas a unidade fazerem login
1 parent 11f599b commit 3e6c329

File tree

2 files changed

+15
-3
lines changed

2 files changed

+15
-3
lines changed

app/Listeners/LoginListener.php

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
use Session;
77
use Uspdev\Replicado\Pessoa;
88
use App\Ldap\User as LdapUser;
9+
use App\Models\Config;
910

1011
class LoginListener
1112
{
@@ -15,6 +16,10 @@ public function __construct(){
1516

1617
public function handle(Login $event){
1718

19+
$configs = Config::latest()->first();
20+
$codpes_sem_vinculo = explode(',',$configs->codpes_sem_vinculo);
21+
$codpes_sem_vinculo = array_unique($codpes_sem_vinculo);
22+
1823
/**
1924
* Manter retrocompatibilidade, pois esse sistema chamado o codpes de username
2025
* 25/06/2021: atualização do senhaunica-socialite para 3.x
@@ -23,8 +28,9 @@ public function handle(Login $event){
2328
$event->user->save();
2429

2530
$vinculos = Pessoa::obterSiglasVinculosAtivos($event->user->codpes);
31+
if($vinculos == null) $vinculos=[];
2632

27-
if(empty($vinculos)){
33+
if(empty($vinculos) & !in_array($event->user->username,$codpes_sem_vinculo)){
2834
Session::flash('alert-danger', 'Pessoa sem vínculo com essa unidade');
2935
auth()->logout();
3036
}
@@ -38,10 +44,13 @@ public function handle(Login $event){
3844
];
3945

4046
$setores = Pessoa::obterSiglasSetoresAtivos($event->user->codpes);
41-
if($setores){
47+
if($setores == null) $setores = [];
48+
49+
if(!empty($setores)){
4250
$attr['setor'] = $setores[0]; # Não é a melhor escolha
4351
}
4452
$password = date('dmY', strtotime(Pessoa::dump($event->user->codpes, ['dtanas'])['dtanas']));
53+
4554
$groups = array_merge($vinculos, $setores);
4655

4756
LdapUser::createOrUpdate($event->user->codpes,$attr,$groups,$password);

app/Providers/AuthServiceProvider.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,10 @@ public function boot()
3131

3232
// gate para servidor
3333
Gate::define('servidor', function ($servidor) {
34-
return in_array('SERVIDOR', Pessoa::obterSiglasVinculosAtivos(Auth::user()->codpes));
34+
$vinculos = Pessoa::obterSiglasVinculosAtivos(Auth::user()->codpes);
35+
if($vinculos == null) $vinculos = [];
36+
37+
return in_array('SERVIDOR', $vinculos);
3538
});
3639
}
3740
}

0 commit comments

Comments
 (0)