Preserve published territories during private editorial review
This commit is contained in:
@@ -2,6 +2,8 @@
|
||||
|
||||
namespace App\Http\Middleware;
|
||||
|
||||
use App\Services\PortalProfileAccess;
|
||||
use App\Services\TerritorialRegistry;
|
||||
use Closure;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Crypt;
|
||||
@@ -24,9 +26,16 @@ class TerritorialRequest
|
||||
} else {
|
||||
abort_unless($request->user()->can('manage-portal') && $request->user()->two_factor_confirmed_at && $request->user()->two_factor_secret, 403);
|
||||
$role = $request->is('*/transitions') ? match ($request->input('action')) {
|
||||
'approved', 'rejected' => 'reviewers', 'published', 'archived', 'revoked' => 'publishers', default => 'editors',
|
||||
'in_review', 'approved', 'rejected' => 'reviewers', 'published', 'archived', 'withdrawn', 'revoked' => 'publishers', default => 'editors',
|
||||
} : 'editors';
|
||||
abort_unless(in_array(strtolower($request->user()->email), config('territorial.'.$role, []), true), 403, 'Função editorial não atribuída.');
|
||||
if ($request->is('api/v1/geo/territories*')) {
|
||||
app(TerritorialRegistry::class)->ensureWriteMode($request->route('id'));
|
||||
if (config('editorial_workflow.territorial_versions')) {
|
||||
abort_unless(app(PortalProfileAccess::class)->mfa($request->user())
|
||||
&& ! app(PortalProfileAccess::class)->has($request->user(), 'auditor'), 403, 'MFA válido necessário.');
|
||||
}
|
||||
}
|
||||
$key = $request->header('Idempotency-Key', '');
|
||||
abort_unless(Str::isUuid($key), 422, 'Idempotency-Key UUID obrigatório.');
|
||||
$scope = $request->method().':'.$request->path();
|
||||
|
||||
Reference in New Issue
Block a user