示例#1
0
 /**
  * Gets security context (access provider) for user.
  * Attention! File/Folder can use anywhere and SecurityContext have to check rights anywhere (any module).
  * @param mixed $user User which use for check rights.
  * @return SecurityContext
  */
 public function getSecurityContextByUser($user)
 {
     if ($this->isCurrentUser($user)) {
         /** @noinspection PhpDynamicAsStaticMethodCallInspection */
         if (Loader::includeModule('socialnetwork') && \CSocnetUser::isCurrentUserModuleAdmin()) {
             return new FakeSecurityContext($user);
         }
         if (UserModel::isCurrentUserAdmin()) {
             return new FakeSecurityContext($user);
         }
     } else {
         $userId = UserModel::resolveUserId($user);
         /** @noinspection PhpDynamicAsStaticMethodCallInspection */
         if ($userId && Loader::includeModule('socialnetwork') && \CSocnetUser::isUserModuleAdmin($userId)) {
             return new FakeSecurityContext($user);
         }
         try {
             if ($userId && ModuleManager::isModuleInstalled('bitrix24') && Loader::includeModule('bitrix24') && \CBitrix24::isPortalAdmin($userId)) {
                 return new FakeSecurityContext($user);
             } elseif ($userId) {
                 //Check user group 1 ('Admins')
                 $tmpUser = new \CUser();
                 $arGroups = $tmpUser->getUserGroup($userId);
                 if (in_array(1, $arGroups)) {
                     return new FakeSecurityContext($user);
                 }
             }
         } catch (\Exception $e) {
         }
     }
     return new DiskSecurityContext($user);
 }
示例#2
0
 private static function checkAdminPermissions()
 {
     global $USER;
     if (!isset($USER) || !is_object($USER) || !$USER->isAdmin() && !(Loader::includeModule('bitrix24') && \CBitrix24::isPortalAdmin($USER->getID()))) {
         return false;
     }
     return true;
 }
示例#3
0
 /**
  * Determines if current user is admin.
  *
  * @return bool
  */
 public static function isCurrentUserAdmin()
 {
     global $USER;
     if (!isset($USER)) {
         return false;
     }
     if ($USER->isAdmin()) {
         return true;
     }
     try {
         if (ModuleManager::isModuleInstalled('bitrix24') && Loader::includeModule('bitrix24')) {
             return \CBitrix24::isPortalAdmin($USER->getId());
         }
     } catch (\Exception $e) {
     }
     return false;
 }
示例#4
0
 private static function checkAdminPermissions()
 {
     global $USER;
     if (!isset($USER) || !is_object($USER) || !$USER->isAdmin() && !(Loader::includeModule('bitrix24') && \CBitrix24::isPortalAdmin($USER->getID()))) {
         throw new AccessException();
     }
 }