示例#1
0
 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);
 }
示例#2
0
 /**
  * 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
 }
示例#4
0
 protected function validate_new_id()
 {
     # vacation can only be enabled if a mailbox with this name exists
     $handler = new MailboxHandler();
     return $handler->init($address);
 }
示例#5
0
 /**
  * @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);
 }
示例#6
0
文件: login.php 项目: port22/mail
 *  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);
示例#7
0
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);