Пример #1
0
 /**
  * Generate cache content
  *
  * @since 5.3
  * @param int $userId
  * @return array|null
  */
 private static function generateUserCacheData($userId)
 {
     $user = eZUser::fetch($userId);
     if (!$user instanceof eZUser) {
         return null;
     }
     // user info (session: eZUserInfoCache)
     $data['info'][$userId] = array('contentobject_id' => $user->attribute('contentobject_id'), 'login' => $user->attribute('login'), 'email' => $user->attribute('email'), 'is_enabled' => $user->isEnabled(false), 'password_hash' => $user->attribute('password_hash'), 'password_hash_type' => $user->attribute('password_hash_type'));
     // user groups list (session: eZUserGroupsCache)
     $groups = $user->generateGroupIdList();
     $data['groups'] = $groups;
     // role list (session: eZRoleIDList)
     $groups[] = $userId;
     $data['roles'] = eZRole::fetchIDListByUser($groups);
     // role limitation list (session: eZRoleLimitationValueList)
     $limitList = $user->limitList(false);
     foreach ($limitList as $limit) {
         $data['role_limitations'][] = $limit['limit_value'];
     }
     // access array (session: AccessArray)
     $data['access_array'] = $user->generateAccessArray();
     // discount rules (session: eZUserDiscountRules<userId>)
     $data['discount_rules'] = eZUserDiscountRule::generateIDListByUserID($userId);
     return $data;
 }
Пример #2
0
 /**
  * Callback which generates user cache for user
  *
  * @internal
  * @since 4.4
  * @see eZUser::getUserCacheByUserId()
  */
 static function generateUserCacheForFile($filePath, $userId)
 {
     $data = array('info' => array(), 'groups' => array(), 'roles' => array(), 'role_limitations' => array(), 'access_array' => array(), 'discount_rules' => array());
     $user = eZUser::fetch($userId);
     if ($user instanceof eZUser) {
         // user info (session: eZUserInfoCache)
         $data['info'][$userId] = array('contentobject_id' => $user->attribute('contentobject_id'), 'login' => $user->attribute('login'), 'email' => $user->attribute('email'), 'password_hash' => $user->attribute('password_hash'), 'password_hash_type' => $user->attribute('password_hash_type'));
         // user groups list (session: eZUserGroupsCache)
         $groups = $user->generateGroupIdList();
         $data['groups'] = $groups;
         // role list (session: eZRoleIDList)
         $groups[] = $userId;
         $data['roles'] = eZRole::fetchIDListByUser($groups);
         // role limitation list (session: eZRoleLimitationValueList)
         $limitList = $user->limitList(false);
         foreach ($limitList as $limit) {
             $data['role_limitations'][] = $limit['limit_value'];
         }
         // access array (session: AccessArray)
         $data['access_array'] = $user->generateAccessArray();
         // discount rules (session: eZUserDiscountRules<userId>)
         $data['discount_rules'] = eZUserDiscountRule::generateIDListByUserID($userId);
     }
     return array('content' => $data, 'scope' => 'user-info-cache', 'datatype' => 'php', 'store' => true);
 }