@@ -123,12 +123,21 @@ class PortalProfileController extends Controller
|
||||
return app(OpportunityManagementController::class)->index($request, app(OpportunityManagement::class));
|
||||
}
|
||||
|
||||
public function edit(Request $request, PortalProfileAccess $access, ?int $id = null): Response
|
||||
public function edit(Request $request, PortalProfileAccess $access, ?int $id = null): Response|\Symfony\Component\HttpFoundation\Response
|
||||
{
|
||||
if ($id) {
|
||||
$access->authorize($request->user(), str_ends_with($request->path(), '/view') ? 'view' : 'edit', Opportunity::withTrashed()->findOrFail($id));
|
||||
} else {
|
||||
abort_unless($access->navigation($request->user())['contexts'] ?? [], 403);
|
||||
if (! ($access->navigation($request->user())['contexts'] ?? [])) {
|
||||
$reason = $access->has($request->user(), 'auditor')
|
||||
? 'O papel de Auditor permite consulta e impede a criação de oportunidades.'
|
||||
: 'Esta conta não dispõe de um contexto ativo de Promotor para uma organização e modalidade autorizadas. Confirme a vigência, o âmbito e os tipos atribuídos na gestão de perfis. A elevação excecional de Superutilizador não substitui a autorização de Promotor.';
|
||||
if ($request->expectsJson()) {
|
||||
abort(403, $reason);
|
||||
}
|
||||
|
||||
return response()->view('profiles.creation-unavailable', ['reason' => $reason], 403);
|
||||
}
|
||||
}
|
||||
|
||||
return app(OpportunityManagementController::class)->edit($request, app(OpportunityManagement::class), $id);
|
||||
|
||||
Reference in New Issue
Block a user