protected function initStruct() { $src_auth_options = array('password', 'kerberos_v5', 'kerberos', 'kerberos_v4', 'gssapi', 'cram-md5', 'otp', 'ntlm', 'msn', 'ssh', 'any'); $src_protocol_options = array('POP3', 'IMAP', 'POP2', 'ETRN', 'AUTO'); $extra = Config::intbool('fetchmail_extra_options'); $this->struct = array('id' => pacol(0, 0, 1, 'num', '', ''), 'domain' => pacol(0, 0, 1, 'text', '', ''), 'mailbox' => pacol(1, 1, 1, 'enum', 'pFetchmail_field_mailbox', 'pFetchmail_desc_mailbox'), 'src_server' => pacol(1, 1, 1, 'text', 'pFetchmail_field_src_server', 'pFetchmail_desc_src_server'), 'src_auth' => pacol(1, 1, 1, 'enum', 'pFetchmail_field_src_auth', 'pFetchmail_desc_src_auth', '', $src_auth_options), 'src_user' => pacol(1, 1, 1, 'text', 'pFetchmail_field_src_user', 'pFetchmail_desc_src_user'), 'src_password' => pacol(1, 1, 0, 'b64p', 'pFetchmail_field_src_password', 'pFetchmail_desc_src_password'), 'src_folder' => pacol(1, 1, 1, 'text', 'pFetchmail_field_src_folder', 'pFetchmail_desc_src_folder'), 'poll_time' => pacol(1, 1, 1, 'num', 'pFetchmail_field_poll_time', 'pFetchmail_desc_poll_time', 10), 'fetchall' => pacol(1, 1, 1, 'bool', 'pFetchmail_field_fetchall', 'pFetchmail_desc_fetchall'), 'keep' => pacol(1, 1, 1, 'bool', 'pFetchmail_field_keep', 'pFetchmail_desc_keep'), 'protocol' => pacol(1, 1, 1, 'enum', 'pFetchmail_field_protocol', 'pFetchmail_desc_protocol', '', $src_protocol_options), 'usessl' => pacol(1, 1, 1, 'bool', 'pFetchmail_field_usessl', 'pFetchmail_desc_usessl'), 'sslcertck' => pacol(1, 1, 1, 'bool', 'pFetchmail_field_sslcertck', ''), 'sslcertpath' => pacol($extra, $extra, $extra, 'text', 'pFetchmail_field_sslcertpath', ''), 'sslfingerprint' => pacol($extra, $extra, $extra, 'text', 'pFetchmail_field_sslfingerprint', ''), 'extra_options' => pacol($extra, $extra, $extra, 'text', 'pFetchmail_field_extra_options', 'pFetchmail_desc_extra_options'), 'mda' => pacol($extra, $extra, $extra, 'text', 'pFetchmail_field_mda', 'pFetchmail_desc_mda'), 'date' => pacol(0, 0, 1, 'text', 'pFetchmail_field_date', 'pFetchmail_desc_date', 1), 'returned_text' => pacol(0, 0, 1, 'text', 'pFetchmail_field_returned_text', 'pFetchmail_desc_returned_text'), 'active' => pacol(1, 1, 1, 'bool', 'active', '', 1), 'created' => pacol(0, 0, 0, 'ts', 'created', ''), 'modified' => pacol(0, 0, 1, 'ts', 'last_modified', '')); # get list of mailboxes (for currently logged in user) $handler = new MailboxHandler(0, $this->admin_username); $handler->getList('1=1'); $this->struct['mailbox']['options'] = array_keys($handler->result); }
/** * Interactive * * @access private */ function __handle($address, $password = NULL, $random = false) { if ($random == true) { $password = generate_password(); } if ($password != NULL) { $handler = new MailboxHandler(); if (!$handler->init($address)) { $this->error("Change Password", join("\n", $handler->errormsg)); } if (!$handler->change_pw($password, NULL, false)) { $this->error("Change Password", join("\n", $handler->errormsg)); } } $this->out(""); $this->out("Password updated."); $this->hr(); $this->out(sprintf('The Mail address is %20s', $address)); $this->out(sprintf('The new password is %20s', $password)); $this->hr(); return; }
protected function storemore() { if ($this->new) { if (!$this->mailbox_post_script()) { # return false; # TODO: should this be fatal? } if ($this->values['welcome_mail'] == true) { if (!$this->send_welcome_mail()) { # return false; # TODO: should this be fatal? } } if (!$this->create_mailbox_subfolders()) { $this->infomsg[] = Config::lang_f('pCreate_mailbox_result_succes_nosubfolders', $this->id); } } else { # edit mode # alias active status is updated in before_store() # postedit hook # TODO: implement a poststore() function? - would make handling of old and new values much easier... $old_mh = new MailboxHandler(); if (!$old_mh->init($this->id)) { $this->errormsg[] = $old_mh->errormsg[0]; } elseif (!$old_mh->view()) { $this->errormsg[] = $old_mh->errormsg[0]; } else { $oldvalues = $old_mh->result(); $this->values['maildir'] = $oldvalues['maildir']; if (isset($this->values['quota'])) { $quota = $this->values['quota']; } else { $quota = $oldvalues['quota']; } if (!$this->mailbox_post_script()) { # TODO: should this be fatal? } } } return true; # even if a hook failed, mark the overall operation as OK }
protected function validate_new_id() { # vacation can only be enabled if a mailbox with this name exists $handler = new MailboxHandler(); return $handler->init($address); }
/** * @param string $username * @param string $password * @return boolean true if successful. */ public function login($username, $password) { $uh = new MailboxHandler(); # $_SESSION['sessid']['username']); return $uh->login($username, $password); }
* lang */ $rel_path = '../'; define('POSTFIXADMIN_LOGOUT', 1); require_once "../common.php"; if ($_SERVER['REQUEST_METHOD'] == "POST") { $lang = safepost('lang'); $fUsername = trim(safepost('fUsername')); $fPassword = safepost('fPassword'); if ($lang != check_language(0)) { # only set cookie if language selection was changed setcookie('lang', $lang, time() + 60 * 60 * 24 * 30); # language cookie, lifetime 30 days # (language preference cookie is processed even if username and/or password are invalid) } $h = new MailboxHandler(); if ($h->login($fUsername, $fPassword)) { session_regenerate_id(); $_SESSION['sessid'] = array(); $_SESSION['sessid']['roles'] = array(); $_SESSION['sessid']['roles'][] = 'user'; $_SESSION['sessid']['username'] = $fUsername; $_SESSION['PFA_token'] = md5(uniqid(rand(), true)); header("Location: main.php"); exit; } else { error_log("PostfixAdmin login failed (username: {$fUsername})"); flash_error($PALANG['pLogin_failed']); } } $smarty->assign('language_selector', language_selector(), false);
if ($_SERVER['REQUEST_METHOD'] == "POST") { if (isset($_POST['fCancel'])) { header("Location: main.php"); exit(0); } $fPassword_current = $_POST['fPassword_current']; $fPassword = $_POST['fPassword']; $fPassword2 = $_POST['fPassword2']; $error = 0; $validpass = validate_password($fPassword); if (count($validpass) > 0) { flash_error($validpass[0]); # TODO: honor all error messages, not only the first one $error += 1; } $mh = new MailboxHandler(); if (!$mh->login($username, $fPassword_current)) { $error += 1; $pPassword_password_current_text = $PALANG['pPassword_password_current_text_error']; } if (empty($fPassword) or $fPassword != $fPassword2) { $error += 1; $pPassword_password_text = $PALANG['pPassword_password_text_error']; } if ($error == 0) { $mh->init($username); # TODO: error handling if ($mh->change_pw($fPassword, $fPassword_current)) { flash_info(Config::Lang_f('pPassword_result_success', $username)); header("Location: main.php"); exit(0);