39 lines
1.1 KiB
PHP
39 lines
1.1 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace app\common\service\pharmacy;
|
|
|
|
final class PharmacyUploadPermissionAlias
|
|
{
|
|
public const LEGACY_URI = 'tcm.prescriptionorder/submitgancaorecipel';
|
|
public const CANONICAL_URI = 'tcm.prescriptionorder/uploadtopharmacy';
|
|
public const RECONCILE_URI = 'tcm.prescriptionorder/confirmgancaosubmission';
|
|
|
|
public static function canonicalUri(string $uri): string
|
|
{
|
|
$uri = strtolower($uri);
|
|
return in_array($uri, [self::LEGACY_URI, self::CANONICAL_URI], true)
|
|
? self::CANONICAL_URI
|
|
: $uri;
|
|
}
|
|
|
|
public static function isControlled(string $uri): bool
|
|
{
|
|
return in_array(strtolower($uri), [self::LEGACY_URI, self::CANONICAL_URI, self::RECONCILE_URI], true);
|
|
}
|
|
|
|
/** @param array<int,string> $adminUris */
|
|
public static function allows(string $accessUri, array $adminUris): bool
|
|
{
|
|
$canonicalAccess = self::canonicalUri($accessUri);
|
|
foreach ($adminUris as $uri) {
|
|
if (self::canonicalUri((string) $uri) === $canonicalAccess) {
|
|
return true;
|
|
}
|
|
}
|
|
|
|
return false;
|
|
}
|
|
}
|