/** * @param int $userId * @param int $offset * @param int $limit * * @return Group[] * @todo: integrate better way of caching */ public function findAdminGroups($userId, $offset = 0, $limit = 10) { static $aCache; $key = md5(json_encode(func_get_args())); if (isset($aCache[$key])) { return $aCache[$key]; } $memberships = $this->client->findUserMemberships($userId, 'name', 0, 'admin', $offset, $limit); $result = []; foreach ($memberships as $membership) { $result[$membership->getGroup()->getId()] = $membership->getGroup(); } $memberships = new Collection($result, $memberships->getTotalCount()); $aCache[$key] = $memberships; return $memberships; }
/** * @param int $userId * @param int $offset * @param int $limit * * @return Membership[] */ public function findUserMemberships($userId, $offset = 0, $limit = 100) { return $this->client->findUserMemberships($userId, 'name', 0, '', $offset, $limit); }