array(TYPE_UINT, REQ_AUTO), 'title' => array(TYPE_STR, REQ_YES), 'displaytitle' => array(TYPE_STR, REQ_NO), 'permissions' => array(TYPE_UINT, REQ_NO) ); /** * Database table * @var string */ protected $table = 'usergroup'; /** * Table prefix * @var string */ protected $prefix = TABLE_PREFIX; /** * Post-insert */ protected function post_insert() { build_usergroups(); } /** * Post-update */ protected function post_update() { build_usergroups(); build_assignedto(); } /** * Pre-delete */ protected function pre_delete() { if ($this->values['usergroupid'] < 7) { throw new FieldException(T('You can\'t delete a default usergroup.'), 'usergroupid'); return false; } } /** * Post-delete */ protected function post_delete() { BSApp::$db->query("DELETE FROM " . TABLE_PREFIX . "permission WHERE usergroupid = " . $this->values['usergroupid']); BSApp::$db->query("DELETE FROM " . TABLE_PREFIX . "bugfieldpermission WHERE usergroupid = " . $this->values['usergroupid']); BSApp::$db->query("UPDATE " . TABLE_PREFIX . "user SET usergroupid = 2 WHERE usergroupid = " . $this->values['usergroupid']); build_usergroups(); build_permissions(); build_assignedto(); } /** * Validate: usergroupid */ protected function validate_usergroupid($field) { return $this->_verifyIsNotZero($field); } /** * Validate: usergroup */ protected function validate_usergroup($field) { return $this->_verifyIsNotEmpty($field); } } ?>