예제 #1
0
    protected function fillSave(Gpf_Rpc_Form $form, Gpf_DbEngine_RowBase $dbRow) {
        if ($form->existsField(Gpf_Db_Table_Users::ACCOUNTID) && $form->getFieldValue(Gpf_Db_Table_Users::ACCOUNTID) == '') {
            $form->setField(Gpf_Db_Table_Users::ACCOUNTID, $dbRow->get(Gpf_Db_Table_Users::ACCOUNTID));
        }
        if ($form->existsField(Gpf_Db_Table_Users::ROLEID) && $form->getFieldValue(Gpf_Db_Table_Users::ROLEID) == '') {
            $form->setField(Gpf_Db_Table_Users::ROLEID, $dbRow->get(Gpf_Db_Table_Users::ROLEID));
        }

        $oldPassword = $dbRow->getPassword();
        $oldUsername = $dbRow->getUsername();

        parent::fillSave($form, $dbRow);

        if (Gpf_Application::isDemo() && $oldUsername == Pap_Branding::DEMO_MERCHANT_USERNAME) {
            $dbRow->setPassword($oldPassword);
            $dbRow->setUsername($oldUsername);
        }
    }
    /**
     * @param $params
     * @param $row
     * @param $primaryKeyName
     * @param $baseAttributes
     */
    private function getResponse(Gpf_Rpc_Params $params, Gpf_DbEngine_RowBase $row, $primaryKeyName, array $baseAttributes = null) {
    	$this->visitorId = $params->get('visitorId');

        $response = new Gpf_Rpc_Data();
        if ($this->visitorId == '') {
            return $response;
        }
        $this->setAccountId($params->get('accountId'));
        
        $this->processAllVisitorVisits();
        if (($visitorAffiliate = $this->getCurrentVisitorAffiliate()) == null) {
            return $response;
        }  
              
    	if (is_null($baseAttributes)) {
    		$baseAttributes = array($primaryKeyName);
    	}
    	$row->set($primaryKeyName, $visitorAffiliate->get($primaryKeyName));
        try {
            $row->load();
        } catch (Gpf_Exception $e) {
            return $response;
        }
        if (Gpf_Session::getAuthUser()->hasPrivilege('click', 'write')) {
            foreach ($row->getAttributes() as $name => $value) {
                $response->setValue($name, $value);
            }
        } else {
        	foreach ($baseAttributes as $attribute) {
            	$response->setValue($attribute, $row->get($attribute));
        	}
        }
        return $response;
    }
예제 #3
0
 protected function addRow(Gpf_Rpc_Form $form, Gpf_DbEngine_RowBase $row) {
     $newCampaign = new Pap_Db_Campaign();
     $newCampaign->setAccountId($row->get(Pap_Db_Table_Campaigns::ACCOUNTID));
     $newCampaign->setIsDefault();
     try {
         $newCampaign->loadFromData(array(Pap_Db_Table_Campaigns::ACCOUNTID,Pap_Db_Table_Campaigns::IS_DEFAULT));
     } catch (Gpf_DbEngine_NoRowException $e){
         $row->set(Pap_Db_Table_Campaigns::IS_DEFAULT,Gpf::YES);
     }
     $row->insert();
 }
예제 #4
0
 private function areChangedReadOnlyFields(Gpf_Rpc_Form $form, Gpf_DbEngine_RowBase $dbRow) {
     $formFields = Gpf_Db_Table_FormFields::getInstance();
     $fields = $formFields->getFieldsNoRpc('affiliateForm', array(Gpf_Db_FormField::STATUS_READ_ONLY));
     foreach ($fields as $field) {
         if ($form->existsField($field->get('code')) && $dbRow->get($field->get('code')) != $form->getFieldValue($field->get('code'))) {
             return true;
         }
     }
     return false;
 }