/** * Validate Db_Row * * @param Gpf_DbEngine_Row $row * @throws Gpf_DbEngine_Row_ConstraintException */ public function validate(Gpf_DbEngine_Row $row) { $role = new Gpf_Db_Role(); $role->setId($row->getRoleId()); $role->load(); $select = new Gpf_SqlBuilder_SelectBuilder(); $select->select->add('r.' . Gpf_Db_Table_Roles::TYPE); $select->from->add(Gpf_Db_Table_Users::getName(), 'u'); $select->from->addInnerJoin(Gpf_Db_Table_Roles::getName(), 'r', 'u.' . Gpf_Db_Table_Users::ROLEID . '=r.' . Gpf_Db_Table_Roles::ID); $select->where->add('u.' . Gpf_Db_Table_Users::AUTHID, '=', $row->getAuthId()); $select->where->add('u.' . Gpf_Db_Table_Users::ACCOUNTID, '=', $row->getAccountId()); $select->where->add('r.' . Gpf_Db_Table_Roles::TYPE, '=', $role->getRoleType()); $select->where->add('u.' . Gpf_Db_Table_Users::ID, '<>', $row->getPrimaryKeyValue()); try { $select->getOneRow(); } catch (Gpf_DbEngine_NoRowException $e) { return; } catch (Gpf_DbEngine_TooManyRowsException $e) { } throw new Gpf_DbEngine_Row_ConstraintException('username', $this->_('Selected username already exists')); }
public function execute(Gpf_DbEngine_Row $dbRow) { $menu = Gpf_Settings::get(Pap_Settings::AFFILIATE_MENU); if (strpos($menu, $dbRow->getPrimaryKeyValue()) !== false) { throw new Gpf_Exception($this->_("Screen %s is in menu and thus can not be deleted", $dbRow->get(Pap_Db_Table_AffiliateScreens::TITLE))); } }
private function loadRow(Gpf_DbEngine_Row $row, $rowName) { try { $row->load(); } catch (Gpf_DbEngine_NoRowException $e) { throw new Gpf_Exception($this->_('%s with id %s not exist', $rowName, $row->getPrimaryKeyValue())); } }