identifiers(); $policy = config('modules.companies.'.$scope['tenant_id'].':'.$scope['company_id'], []); $contracted = $policy['contracted'] ?? config('modules.contracted', []); abort_unless(in_array('purchasing', $contracted, true) && in_array('purchasing', $policy['enabled'] ?? $contracted, true), 403); $initialisation = $request->is('purchasing/internal-requisitions/access-initialisation', 'api/internal-requisitions/access-initialisation'); if (! $initialisation) { abort_unless($request->session()->get('company_context.module_id') === 'purchasing', 409, 'Seleccione o módulo Compras.'); abort_unless(in_array('purchasing', array_column(app(ModuleNavigation::class)->available($context), 'id'), true), 403); } if ($request->is('api/*')) { $token = (string) $request->session()->get('company_context.token', ''); abort_unless($token !== '' && hash_equals($token, (string) $request->header('X-SGF-Context')), 409); } return $next($request); } }