public function setAttribute($attribute, $value)
 {
     switch ($attribute)
     {
         case $this->AuthenticationAuthority->getField('groupname'):
             $this->setGroupName($value);
             break;
         case $this->AuthenticationAuthority->getField('gid'):
             $this->setGroupID($value);
             break;
         case $this->AuthenticationAuthority->getField('members'):
             $this->members=$value;
             break;
         default:
             parent::setAttribute($attribute, $value);
             break;
     }
 }
    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;
        }
    }