File manager - Edit - /var/www/html/portal/app/Http/Services/Cultura/Credenciamento/CredenciamentoEtapaAccess.php
Back
<?php namespace App\Http\Services\Cultura\Credenciamento; use App\Models\User; /** * Controle de acesso por etapa do credenciamento conforme PRD: * - Habilitação Documental (Licitação): Secretaria de Gestão de Suprimentos * - Avaliação Artística: Secretaria de Cultura e Patrimônio / Fundação de Turismo (TurisAngra) */ class CredenciamentoEtapaAccess { /** Nomes (parciais) da estrutura para etapa Licitação */ private const LICITACAO_NAMES = ['Gestão de Suprimentos', 'Suprimentos']; /** Nomes (parciais) da estrutura para etapa Cultura/TurisAngra */ private const CULTURA_NAMES = ['Cultura', 'Patrimônio', 'Turismo', 'TurisAngra']; public static function isAdmin(User $user): bool { $permissoes = $user->listaPermissoes(); return in_array('SYSADMIN', $permissoes, true) || in_array('GERENCIADOR_CREDENCIAMENTO_DE_MUSICOS', $permissoes, true); } public static function canAccessLicitacao(User $user): bool { if (self::isAdmin($user)) { return true; } $structure = $user->pertence; if (!$structure || !$structure->name) { return false; } $name = mb_strtolower($structure->name); foreach (self::LICITACAO_NAMES as $part) { if (str_contains($name, mb_strtolower($part))) { return true; } } return false; } public static function canAccessCultura(User $user): bool { if (self::isAdmin($user)) { return true; } $structure = $user->pertence; if (!$structure || !$structure->name) { return false; } $name = mb_strtolower($structure->name); foreach (self::CULTURA_NAMES as $part) { if (str_contains($name, mb_strtolower($part))) { return true; } } return false; } }
| ver. 1.4 |
Github
|
.
| PHP 8.3.28 | Generation time: 0.02 |
proxy
|
phpinfo
|
Settings