Retomar a oportunidade escolhida apos a entrada do candidato
This commit is contained in:
@@ -16,6 +16,7 @@ use App\Services\CurrentActor;
|
||||
use App\Services\OrganizationConfiguration;
|
||||
use App\Services\RequisitionWorkflow;
|
||||
use App\Services\SubmissionForms;
|
||||
use Illuminate\Database\Eloquent\ModelNotFoundException;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
@@ -24,6 +25,7 @@ use Illuminate\Support\Facades\Schema;
|
||||
use Illuminate\Validation\ValidationException;
|
||||
use Inertia\Inertia;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
||||
|
||||
class CandidatePortalController extends Controller
|
||||
{
|
||||
@@ -69,7 +71,8 @@ class CandidatePortalController extends Controller
|
||||
public function login(Request $request, int $company, CandidateProfiles $profiles): Response
|
||||
{
|
||||
abort_unless($profiles->portal($company) !== null, 404);
|
||||
$data = $request->validate(['email' => 'required|string|max:254', 'password' => 'required|string|max:128']);
|
||||
$data = $request->validate(['email' => 'required|string|max:254', 'password' => 'required|string|max:128',
|
||||
'opportunity_id' => 'nullable|integer|min:1|max:2147483647']);
|
||||
$account = CandidateAccount::query()->where('tenant_id', $company)->where('email', mb_strtolower(trim($data['email'])))->first();
|
||||
$dummy = Hash::make('candidate-unavailable-account');
|
||||
$valid = Hash::check($data['password'], $account->password ?? $dummy);
|
||||
@@ -82,6 +85,18 @@ class CandidatePortalController extends Controller
|
||||
$request->session()->regenerate();
|
||||
Inertia::clearHistory();
|
||||
|
||||
if (isset($data['opportunity_id'])) {
|
||||
try {
|
||||
// Recheck current publication, company and deadline after authentication.
|
||||
app(CandidateSubmissions::class)->opportunity($company, (int) $data['opportunity_id']);
|
||||
|
||||
return redirect('/candidaturas/'.$company.'/oportunidades/'.$data['opportunity_id']);
|
||||
} catch (NotFoundHttpException|ModelNotFoundException) {
|
||||
// A withdrawn, expired or foreign opportunity cannot become an authenticated destination.
|
||||
return redirect('/candidaturas/'.$company.'/perfil')->with('candidate_access_status', 'opportunity_unavailable');
|
||||
}
|
||||
}
|
||||
|
||||
return redirect('/candidaturas/'.$company.'/perfil');
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user