public function getGroup($group) { if (strlen($group)==0) { return false; } if ($groupData = $this->getGroupData($group)) { $group = new BasicUserGroup($this); $group->setGroupID($groupData['gid']); $group->setGroupName($groupData['group']); $members = is_array($groupData['members']) ? $groupData['members'] : array(); $groupMembers = array(); //translate the user strings into user objects foreach ($members as $user) { //parse the authority|user pair. If no authority is indicated than use this authority's index $userPieces = explode("|", $user); $authorityIndex = count($userPieces)==2 ? $userPieces[0] : $this->getAuthorityIndex(); $userID = count($userPieces)==2 ? $userPieces[1] : $userPieces[0]; if ($authority = AuthenticationAuthority::getAuthenticationAuthority($authorityIndex)) { if ($user = $authority->getUser($userID)) { $groupMembers[] = $user; } } else { throw new Exception("Invalid authority $authorityIndex when parsing group information for $group"); } } $group->setMembers($groupMembers); return $group; } else { return false; } }