/** * 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; }
/** * 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); }