%PDF- %PDF-
Server IP : 37.220.80.31 / Your IP : 18.119.172.75 Web Server : Apache/2.4.52 (Ubuntu) System : Linux 3051455-guretool.twc1.net 5.15.0-107-generic #117-Ubuntu SMP Fri Apr 26 12:26:49 UTC 2024 x86_64 User : www-root ( 1010) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/www-root/data/www/dev.artlot24.ru/bitrix/modules/main/lib/access/ |
Upload File : |
<?php /** * Bitrix Framework * @package bitrix * @subpackage main * @copyright 2001-2021 Bitrix */ namespace Bitrix\Main\Access; class AccessCode { public const ACCESS_DIRECTOR = 'AD', ACCESS_EMPLOYEE = 'AE'; public const AC_DEPARTMENT = '^(D)(\d+)$', AC_ALL_DEPARTMENT = '^(DR)(\d+)$', AC_INTRANET_USER = '^(IU)(\d+)$', AC_GROUP = '^(G)(\d+)$', AC_USER = '^(U)(\d+)$', AC_SOCNETGROUP = '^(SG)(\d+)(_[AEK])?$', AC_SOCNETUSER = '^(SU)(\d+)(_M)?$', AC_ACCESS_DIRECTOR = '^('.self::ACCESS_DIRECTOR.')(\d+)?$', AC_ACCESS_EMPLOYEE = '^('.self::ACCESS_EMPLOYEE.')(\d+)?$'; public const TYPE_USER = 'users', TYPE_USER_ALL = 'users_all', TYPE_GROUP = 'groups', TYPE_SOCNETGROUP = 'sonetgroups', TYPE_DEPARTMENT = 'departments', TYPE_ACCESS_DIRECTOR = 'access_director', TYPE_ACCESS_EMPLOYEE = 'access_employee', TYPE_OTHER = 'other'; public static $map = [ self::AC_DEPARTMENT => self::TYPE_DEPARTMENT, self::AC_ALL_DEPARTMENT => self::TYPE_DEPARTMENT, self::AC_INTRANET_USER => self::TYPE_USER, self::AC_GROUP => self::TYPE_GROUP, self::AC_USER => self::TYPE_USER, self::AC_SOCNETGROUP => self::TYPE_SOCNETGROUP, self::AC_SOCNETUSER => self::TYPE_OTHER, self::AC_ACCESS_DIRECTOR => self::TYPE_ACCESS_DIRECTOR, self::AC_ACCESS_EMPLOYEE => self::TYPE_ACCESS_EMPLOYEE, ]; private $accessCode; private $entityType = self::TYPE_OTHER; private $entityPrefix = ''; private $entityId = 0; public function __construct(string $accessCode) { $this->accessCode = $accessCode; $this->parse(); } public function getSignature() { return $this->entityPrefix . $this->entityId; } public function getEntityType(): string { return $this->entityType; } public function getEntityPrefix(): string { return $this->entityPrefix; } public function getEntityId(): int { return $this->entityId; } private function parse() { foreach (self::$map as $pattern => $type) { if (preg_match('/'. $pattern .'/', $this->accessCode, $matches)) { $this->entityType = $type; $this->entityPrefix = (string) $matches[1]; if (array_key_exists('2', $matches)) { $this->entityId = (int) $matches[2]; } return; } } } public static function isValid($code) { $valid = false; foreach (self::$map as $pattern => $type) { if (preg_match('/'. $pattern .'/', $code, $matches)) { $valid = true; } } return $valid; } }