예제 #1
0
 /**
  *  Delete group preference record
  *
  * @param string $sessid
  * 		session id
  * @param string $group
  * 		group name
  * @param string $key
  * 		preference key
  * @return boolean
  */
 function delGroupPref($sessid, $group, $key)
 {
     $uid = Alib::GetSessUserId($sessid);
     if (PEAR::isError($uid)) {
         return $uid;
     }
     if (is_null($uid)) {
         return PEAR::raiseError("Prefs::delGroupPref: invalid session id", GBERR_SESS);
     }
     $gid = Subjects::GetSubjId($group);
     if (PEAR::isError($gid)) {
         return $gid;
     }
     if (is_null($gid)) {
         return PEAR::raiseError("Prefs::delGroupPref: invalid group name", GBERR_SESS);
     }
     $memb = Subjects::IsMemberOf($uid, $gid);
     if (PEAR::isError($memb)) {
         return $memb;
     }
     if (!$memb) {
         return PEAR::raiseError("Prefs::delGroupPref: access denied", GBERR_DENY);
     }
     $r = $this->delete($gid, $key);
     if (PEAR::isError($r)) {
         return $r;
     }
     if ($r === FALSE) {
         return PEAR::raiseError("Prefs::delGroupPref: invalid preference key", GBERR_PREF);
     }
     return TRUE;
 }