File manager - Edit - /var/www/html/homologBancodetalentos/routes/web.php
Back
<?php use App\Http\Controllers\Web\TalentBank\AdminWebController; use App\Http\Controllers\Web\TalentBank\AuthWebController; use App\Http\Controllers\Web\TalentBank\CandidateWebController; use App\Http\Controllers\Web\TalentBank\ConcluirCadastroController; use App\Http\Controllers\Web\TalentBank\CompanyAreaWebController; use App\Http\Controllers\Web\TalentBank\CompanyPublicWebController; use App\Http\Controllers\Web\TalentBank\ContactWebController; use App\Http\Controllers\Web\TalentBank\HomeWebController; use App\Http\Controllers\Web\TalentBank\JobWebController; use App\Http\Controllers\Web\TalentBank\NewsWebController; use App\Http\Controllers\Web\TalentBank\CompanyNotificationWebController; use App\Http\Controllers\Web\TalentBank\NotificationApiController; use App\Http\Controllers\Web\TalentBank\NotificationWebController; use App\Http\Controllers\Web\TalentBank\PasswordResetWebController; use Illuminate\Support\Facades\Route; /* |-------------------------------------------------------------------------- | Web Routes - Banco de Talentos |-------------------------------------------------------------------------- */ Route::get('/', [HomeWebController::class, 'index'])->name('home'); Route::view('/sobre', 'pages.sobre')->name('sobre'); Route::get('/vagas', [JobWebController::class, 'index'])->name('vagas'); Route::get('/vagas/{job}', [JobWebController::class, 'show']) ->middleware(['sso.session', 'auth.sso.web.optional']) ->name('vagas.show'); Route::get('/noticias', [NewsWebController::class, 'index'])->name('noticias'); Route::get('/noticias/{slug}', [NewsWebController::class, 'show'])->name('noticias.show'); Route::get('/empresas', [CompanyPublicWebController::class, 'index'])->name('empresas'); Route::get('/fale-conosco', [ContactWebController::class, 'create'])->name('fale-conosco'); Route::post('/fale-conosco', [ContactWebController::class, 'store']) ->middleware('throttle:contact-form') ->name('fale-conosco.submit'); Route::get('/entrar', [AuthWebController::class, 'showLogin'])->name('entrar'); Route::post('/entrar', [AuthWebController::class, 'login'])->name('entrar.submit'); Route::post('/entrar/sso-callback', [AuthWebController::class, 'ssoCallback'])->name('entrar.sso-callback'); Route::get('/auth/status', [AuthWebController::class, 'authStatus']) ->middleware('throttle:auth-status') ->name('auth.status'); Route::get('/auth/check-legacy', [AuthWebController::class, 'checkLegacy']) ->middleware('throttle:auth-status') ->name('auth.check-legacy'); Route::view('/sso/bridge', 'sso.bridge')->name('sso.bridge'); Route::view('/sso/logout-bridge', 'sso.logout-bridge')->name('sso.logout-bridge'); Route::post('/sair', [AuthWebController::class, 'logout'])->middleware('sso.session')->name('sair'); Route::post('/sair/completo', [AuthWebController::class, 'logoutCompleto'])->middleware('sso.session')->name('sair.completo'); Route::get('/cadastro/candidato', [AuthWebController::class, 'showRegisterCandidate'])->name('talent-bank.register.candidate'); Route::post('/cadastro/candidato', [AuthWebController::class, 'registerCandidate'])->name('talent-bank.register.candidate.submit'); Route::get('/cadastro/empresa', [AuthWebController::class, 'showRegisterCompany'])->name('talent-bank.register.company'); Route::post('/cadastro/empresa', [AuthWebController::class, 'registerCompany'])->name('talent-bank.register.company.submit'); Route::view('/cadastre-se', 'talent-bank.auth.register-choice')->name('cadastre-se'); $btWeb = ['sso.session', 'inactivity.timeout', 'auth.sso.web', 'talent.bank.web']; Route::post('/auth/activity', [AuthWebController::class, 'touchActivity']) ->middleware(['sso.session', 'inactivity.timeout', 'auth.sso.web']) ->name('auth.activity'); Route::middleware($btWeb)->group(function () { Route::post('/vagas/{job}/candidatar', [JobWebController::class, 'apply']) ->middleware('auth.permissions.web:talent-bank-user-candidate') ->name('vagas.apply'); Route::delete('/vagas/{job}/candidatar', [JobWebController::class, 'withdrawApplication']) ->middleware('auth.permissions.web:talent-bank-user-candidate') ->name('vagas.withdraw'); Route::middleware('auth.permissions.web:talent-bank-user-candidate,gestao-de-usuarios,talent-bank-admin')->group(function () { // Conclusão de cadastro para candidatos migrados — sem o middleware profile.complete para evitar loop Route::get('/concluir-cadastro', [ConcluirCadastroController::class, 'show'])->name('talent-bank.candidate.concluir-cadastro'); Route::post('/concluir-cadastro', [ConcluirCadastroController::class, 'store'])->name('talent-bank.candidate.concluir-cadastro.store'); Route::middleware('profile.complete')->group(function () { Route::get('/perfil', [CandidateWebController::class, 'profile'])->name('talent-bank.candidate.profile'); Route::post('/perfil/foto', [CandidateWebController::class, 'updatePhoto'])->name('talent-bank.candidate.photo.update'); Route::get('/curriculo', [CandidateWebController::class, 'curriculum'])->name('talent-bank.candidate.curriculum'); Route::get('/curriculo/pdf', [CandidateWebController::class, 'downloadCurriculumPdf'])->name('talent-bank.candidate.curriculum.pdf'); Route::get('/curriculo/pdf/visualizar', [CandidateWebController::class, 'streamCurriculumPdf'])->name('talent-bank.candidate.curriculum.pdf.stream'); Route::get('/curriculo/imprimir', [CandidateWebController::class, 'printCurriculum'])->name('talent-bank.candidate.curriculum.print'); Route::get('/alterar-cadastro', [CandidateWebController::class, 'editProfile'])->name('talent-bank.candidate.edit'); Route::put('/alterar-cadastro', [CandidateWebController::class, 'updateProfile'])->name('talent-bank.candidate.update'); Route::post('/alterar-cadastro/sso', [CandidateWebController::class, 'selfEdit'])->name('talent-bank.candidate.self-edit'); Route::post('/curriculo/habilidades', [CandidateWebController::class, 'storeSkill'])->name('talent-bank.candidate.skills.store'); Route::put('/curriculo/habilidades/{id}', [CandidateWebController::class, 'updateSkill'])->where('id', '[0-9]+')->name('talent-bank.candidate.skills.update'); Route::delete('/curriculo/habilidades/{id}', [CandidateWebController::class, 'destroySkill'])->where('id', '[0-9]+')->name('talent-bank.candidate.skills.destroy'); Route::post('/curriculo/formacoes', [CandidateWebController::class, 'storeEducation'])->name('talent-bank.candidate.educations.store'); Route::put('/curriculo/formacoes/{id}', [CandidateWebController::class, 'updateEducation'])->where('id', '[0-9]+')->name('talent-bank.candidate.educations.update'); Route::delete('/curriculo/formacoes/{id}', [CandidateWebController::class, 'destroyEducation'])->where('id', '[0-9]+')->name('talent-bank.candidate.educations.destroy'); Route::post('/curriculo/cursos', [CandidateWebController::class, 'storeCourse'])->name('talent-bank.candidate.courses.store'); Route::put('/curriculo/cursos/{id}', [CandidateWebController::class, 'updateCourse'])->where('id', '[0-9]+')->name('talent-bank.candidate.courses.update'); Route::delete('/curriculo/cursos/{id}', [CandidateWebController::class, 'destroyCourse'])->where('id', '[0-9]+')->name('talent-bank.candidate.courses.destroy'); Route::post('/curriculo/experiencias', [CandidateWebController::class, 'storeExperience'])->name('talent-bank.candidate.experiences.store'); Route::put('/curriculo/experiencias/{id}', [CandidateWebController::class, 'updateExperience'])->where('id', '[0-9]+')->name('talent-bank.candidate.experiences.update'); Route::delete('/curriculo/experiencias/{id}', [CandidateWebController::class, 'destroyExperience'])->where('id', '[0-9]+')->name('talent-bank.candidate.experiences.destroy'); Route::post('/curriculo/idiomas', [CandidateWebController::class, 'attachLanguage'])->name('talent-bank.candidate.languages.attach'); Route::delete('/curriculo/idiomas/{languageId}', [CandidateWebController::class, 'detachLanguage'])->where('languageId', '[0-9]+')->name('talent-bank.candidate.languages.detach'); Route::post('/curriculo/areas-interesse', [CandidateWebController::class, 'attachWantedOccupation'])->name('talent-bank.candidate.wanted-occupations.attach'); Route::delete('/curriculo/areas-interesse/{occupationId}', [CandidateWebController::class, 'detachWantedOccupation'])->name('talent-bank.candidate.wanted-occupations.detach'); Route::get('/notificacoes', [NotificationWebController::class, 'index'])->name('talent-bank.candidate.notifications.index'); Route::post('/notificacoes/{id}/lida', [NotificationWebController::class, 'markAsRead'])->name('talent-bank.candidate.notifications.read'); Route::post('/notificacoes/marcar-todas-lidas', [NotificationWebController::class, 'markAllAsRead'])->name('talent-bank.candidate.notifications.read-all'); Route::get('/notificacoes/preferencias', [NotificationWebController::class, 'preferences'])->name('talent-bank.candidate.notifications.preferences'); Route::put('/notificacoes/preferencias', [NotificationWebController::class, 'updatePreferences'])->name('talent-bank.candidate.notifications.preferences.update'); Route::prefix('notificacoes/api')->name('talent-bank.candidate.notifications.api.')->group(function () { Route::get('unread-count', [NotificationApiController::class, 'unreadCount'])->name('unread-count'); Route::get('recent', [NotificationApiController::class, 'recent'])->name('recent'); Route::post('{id}/lida', [NotificationApiController::class, 'markAsRead'])->name('read'); Route::post('marcar-todas-lidas', [NotificationApiController::class, 'markAllAsRead'])->name('read-all'); }); }); // fim profile.complete }); Route::middleware('auth.permissions.web:talent-bank-user-company')->group(function () { // Rotas de conclusão de cadastro — sem company.profile.complete para evitar loop Route::get('/area-empresa/alterar-cadastro', [CompanyAreaWebController::class, 'editProfile'])->name('talent-bank.company.edit'); Route::put('/area-empresa/alterar-cadastro', [CompanyAreaWebController::class, 'updateProfile'])->name('talent-bank.company.update'); Route::middleware('company.profile.complete')->group(function () { Route::get('/area-empresa', [CompanyAreaWebController::class, 'dashboard'])->name('talent-bank.company.dashboard'); Route::get('/area-empresa/vaga/nova', [CompanyAreaWebController::class, 'createJob'])->name('talent-bank.company.jobs.create'); Route::post('/area-empresa/vaga', [CompanyAreaWebController::class, 'storeJob'])->name('talent-bank.company.jobs.store'); Route::get('/area-empresa/vaga/{job}/editar', [CompanyAreaWebController::class, 'editJob'])->name('talent-bank.company.jobs.edit'); Route::put('/area-empresa/vaga/{job}', [CompanyAreaWebController::class, 'updateJob'])->name('talent-bank.company.jobs.update'); Route::delete('/area-empresa/vaga/{job}', [CompanyAreaWebController::class, 'destroyJob'])->name('talent-bank.company.jobs.destroy'); Route::get('/area-empresa/vaga/{job}/candidatos', [CompanyAreaWebController::class, 'jobApplicants'])->name('talent-bank.company.jobs.applicants'); Route::patch('/area-empresa/vaga/{job}/candidatos/{candidate}/status', [CompanyAreaWebController::class, 'updateApplicantStatus'])->name('talent-bank.company.jobs.applicants.status'); Route::get('/area-empresa/vaga/{job}/candidatos/{candidate}/curriculo-pdf', [CompanyAreaWebController::class, 'downloadCandidatePdf'])->name('talent-bank.company.jobs.applicants.curriculum-pdf'); Route::get('/area-empresa/vaga/{job}/candidatos/{candidate}/curriculo-pdf/visualizar', [CompanyAreaWebController::class, 'streamCandidatePdf'])->name('talent-bank.company.jobs.applicants.curriculum-pdf-stream'); Route::get('/area-empresa/vaga/{job}/candidatos/{candidate}/curriculo-print', [CompanyAreaWebController::class, 'printCandidateCurriculum'])->name('talent-bank.company.jobs.applicants.curriculum-print'); Route::post('/area-empresa/perfil', [CompanyAreaWebController::class, 'selfEdit'])->name('talent-bank.company.self-edit'); Route::get('/area-empresa/notificacoes', [CompanyNotificationWebController::class, 'index'])->name('talent-bank.company.notifications.index'); Route::post('/area-empresa/notificacoes/{id}/lida', [CompanyNotificationWebController::class, 'markAsRead'])->name('talent-bank.company.notifications.read'); Route::post('/area-empresa/notificacoes/marcar-todas-lidas', [CompanyNotificationWebController::class, 'markAllAsRead'])->name('talent-bank.company.notifications.read-all'); Route::prefix('area-empresa/notificacoes/api')->name('talent-bank.company.notifications.api.')->group(function () { Route::get('unread-count', [NotificationApiController::class, 'unreadCount'])->name('unread-count'); Route::get('recent', [NotificationApiController::class, 'recent'])->name('recent'); Route::post('{id}/lida', [NotificationApiController::class, 'markAsRead'])->name('read'); Route::post('marcar-todas-lidas', [NotificationApiController::class, 'markAllAsRead'])->name('read-all'); }); }); // fim company.profile.complete }); Route::middleware('auth.permissions.web:gestao-de-usuarios,talent-bank-admin')->prefix('admin/bt')->group(function () { Route::get('/candidatos', [AdminWebController::class, 'candidates'])->name('talent-bank.admin.candidates'); Route::get('/relatorio', [AdminWebController::class, 'report'])->name('talent-bank.admin.report'); Route::get('/vagas', [AdminWebController::class, 'jobsAdmin'])->name('talent-bank.admin.jobs'); }); }); Route::middleware('throttle:password-recovery')->group(function () { Route::get('/esqueci-senha', [PasswordResetWebController::class, 'showForgot'])->name('esqueci-senha'); Route::post('/esqueci-senha', [PasswordResetWebController::class, 'sendResetEmail'])->name('esqueci-senha.submit'); Route::get('/redefinir-senha', [PasswordResetWebController::class, 'showReset'])->name('password.reset'); Route::post('/redefinir-senha', [PasswordResetWebController::class, 'reset'])->name('password.reset.submit'); }); Route::get('/noticias/{dta}/{slug}', function (string $dta, string $slug) { $url = 'https://angra.rj.gov.br/noticias/'.$dta.'/'.$slug; return redirect()->away($url); }) ->where([ 'dta' => '\d{4}-\d{2}-\d{2}', 'slug' => '[a-z0-9-]+', ]) ->name('paginas.slug');
| ver. 1.4 |
Github
|
.
| PHP 8.3.28 | Generation time: 0.14 |
proxy
|
phpinfo
|
Settings