public function save(Default_Model_AccessTokenNetfilter $value)
 {
     global $application;
     $data = array();
     if (!isnull($value->getNetfilter())) {
         $data['netfilter'] = $value->getNetfilter();
     }
     if (!isnull($value->getTokenID())) {
         $data['tokenid'] = $value->getTokenID();
     }
     $q1 = array('tokenid = ?', 'netfilter = ?');
     $q2 = array($value->tokenid, $value->netfilter);
     $select = $this->getDbTable()->select();
     for ($i = 0; $i < count($q1); $i++) {
         $select->where($q1[$i], $q2[$i]);
     }
     $new_entry = count($this->getDbTable()->fetchAll($select)) == 0;
     if ($new_entry) {
         $this->getDbTable()->insert($data);
     } else {
         $s = array();
         for ($i = 0; $i < count($q1); $i++) {
             $s[] = $this->getDbTable()->getAdapter()->quoteInto($q1[$i], $q2[$i]);
         }
         $this->getDbTable()->update($data, $s);
     }
 }
示例#2
0
 public static function addNetfilter($user, $token, $netfilter)
 {
     //Find current user
     $user = self::getUser($user);
     if ($user === null) {
         return "User not found";
     }
     //Find given token
     $token = self::getAccessToken($token);
     if ($token === null) {
         return "Invalid token given";
     }
     //Check if the access token is added by the current user
     if ($token->addedbyid !== $user->id) {
         return "Only user " . $user->firstname . " " . $user->lastname . " can modify netfilters for this token";
     }
     //Check if maximum number of netfilters is reached
     $maxfilters = self::getMaximumAccessTokens();
     $currentfilters = $token->getNetfilters();
     if (count($currentfilters) >= $maxfilters) {
         if ($maxfilters == 1) {
             return "A netfilter already exists for the current access token";
         } else {
             return "Having more than " . $maxfilters . " netfilters per access token is not allowed.";
         }
     }
     //Check validity of netfilter
     $validfilters = self::validNetFilters(array($netfilter));
     if ($validfilters !== true) {
         return $validfilters;
     }
     //Save netfilters
     try {
         $nfilter = new Default_Model_AccessTokenNetfilter();
         $nfilter->tokenid = $token->id;
         $nfilter->netfilter = $netfilter;
         $nfilter->save();
     } catch (Exception $ex) {
         return $ex->getMessage();
     }
     return true;
 }