File manager - Edit - /var/www/html/homologBancodetalentos/app/Http/Middleware/EnsureCandidateProfileComplete.php
Back
<?php namespace App\Http\Middleware; use App\Models\TalentBank\Candidate; use App\Support\SsoWebSession; use Closure; use Illuminate\Http\Request; use Symfony\Component\HttpFoundation\Response; /** * Redireciona candidatos migrados (profile_completed_at = null) para a tela * de conclusão de cadastro. Candidatos novos já têm o campo preenchido e passam * normalmente. Só atua em sessões de candidatos — empresas não são afetadas. */ class EnsureCandidateProfileComplete { public function handle(Request $request, Closure $next): Response { // Não aplicar fora de sessões SSO ativas if (! SsoWebSession::hasToken()) { return $next($request); } $payload = session('sso.user_payload'); $permissions = data_get($payload, 'data.permissions.siati', []); // Só age para candidatos; empresas não passam por este fluxo $isCandidate = is_array($permissions) && in_array('talent-bank-user-candidate', $permissions, true); if (! $isCandidate) { return $next($request); } $doc = (string) data_get($payload, 'data.document', ''); if ($doc === '') { return $next($request); } $candidate = Candidate::where('cpf', $doc)->first(); // Candidato não encontrado no BT — deixa outro middleware tratar if ($candidate === null) { return $next($request); } // Perfil já concluído — acesso liberado if ($candidate->isProfileComplete()) { return $next($request); } // Já está na rota de conclusão — evita loop de redirect if ($request->routeIs('talent-bank.candidate.concluir-cadastro') || $request->routeIs('talent-bank.candidate.concluir-cadastro.store')) { return $next($request); } return redirect()->route('talent-bank.candidate.concluir-cadastro') ->with('info', __('talent_bank.complete_profile_required')); } }
| ver. 1.4 |
Github
|
.
| PHP 8.3.28 | Generation time: 0.02 |
proxy
|
phpinfo
|
Settings