struct, $this->db_table and $this->id_field protected function initStruct() { # TODO: shorter PALANG labels ;-) $this->struct=array( # field name allow display in... type $PALANG label $PALANG description default / options / ... # editing? form list 'username' => pacol( 0, 1, 1, 'text', 'admin' , '' ), 'oldpass' => pacol( 1, 1, 0, 'pass', 'pPassword_password_current' , '', '', '', /*not_in_db*/ 1 ), 'password' => pacol( 1, 1, 0, 'pass', 'pPassword_password' , '' ), 'password2' => pacol( 1, 1, 0, 'pass', 'pPassword_password2' , '' , '', '', /*not_in_db*/ 0, /*dont_write_to_db*/ 1, /*select*/ 'password as password2' ), ); } public function init($id) { # hardcode to logged in admin if ($this->admin_username == '') die("No admin logged in"); $this->id = $this->admin_username; $this->values['username'] = $this->id; $this->struct['username']['default'] = $this->id; # hardcode to edit mode $this->new = 0; return parent::init($this->id); } public function initMsg() { $this->msg['error_already_exists'] = 'pAdminCreate_admin_username_text_error2'; # probably unused $this->msg['error_does_not_exist'] = 'pAdminEdit_admin_result_error'; # probably unused $this->msg['logname'] = 'edit_password'; $this->msg['store_error'] = 'pPassword_result_error'; $this->msg['successmessage'] = 'pPassword_result_success'; } public function webformConfig() { return array( # $PALANG labels 'formtitle_create' => 'pPassword_welcome', 'formtitle_edit' => 'pPassword_welcome', 'create_button' => 'change_password', # various settings 'required_role' => 'admin', 'listview' => 'main.php', 'early_init' => 1, 'hardcoded_edit' => true, ); } /** * check if old password is correct */ protected function _field_oldpass($field, $val) { if ( $this->login($this->id, $val) ) { return true; } $this->errormsg[$field] = Config::lang('pPassword_password_current_text_error'); return false; } /** * skip default validation (check if password is good enough) for old password */ protected function _inp_pass($field, $val) { if ($field == 'oldpass') return true; return parent::_inp_pass($field, $val); } /** * compare password / password2 field * error message will be displayed at the password2 field */ protected function _field_password2($field, $val) { return $this->compare_password_fields('password', 'password2'); } } /* vim: set expandtab softtabstop=4 tabstop=4 shiftwidth=4: */