예제 #1
0
파일: modules.php 프로젝트: GordonDiggs/hm3
 public function process()
 {
     list($success, $form) = $this->process_form(array('nux_pass', 'nux_service', 'nux_email', 'nux_name'));
     if ($success) {
         if (Nux_Quick_Services::exists($form['nux_service'])) {
             $details = Nux_Quick_Services::details($form['nux_service']);
             $details['name'] = $form['nux_name'];
             Hm_IMAP_List::add(array('name' => $details['name'], 'server' => $details['server'], 'port' => $details['port'], 'tls' => $details['tls'], 'user' => $form['nux_email'], 'pass' => $form['nux_pass']));
             $servers = Hm_IMAP_List::dump(false, true);
             $ids = array_keys($servers);
             $new_id = array_pop($ids);
             $imap = Hm_IMAP_List::connect($new_id, false);
             if ($imap && $imap->get_state() == 'authenticated') {
                 if (isset($details['smtp'])) {
                     Hm_SMTP_List::add(array('name' => $details['name'], 'server' => $details['smtp']['server'], 'port' => $details['smtp']['port'], 'tls' => $details['smtp']['tls'], 'user' => $form['nux_email'], 'pass' => $form['nux_pass']));
                     $this->session->record_unsaved('SMTP server added');
                     $smtp_servers = Hm_SMTP_List::dump(false, true);
                     $this->user_config->set('smtp_servers', $smtp_servers);
                 }
                 $this->user_config->set('imap_servers', $servers);
                 Hm_IMAP_List::clean_up();
                 $user_data = $this->user_config->dump();
                 if (!empty($user_data)) {
                     $this->session->set('user_data', $user_data);
                 }
                 $this->session->record_unsaved('IMAP server added');
                 $this->session->record_unsaved('SMTP server added');
                 $this->session->secure_cookie($this->request, 'hm_reload_folders', '1');
                 Hm_Msgs::add('E-mail account successfully added');
                 $msgs = Hm_Msgs::get();
                 if (!empty($msgs)) {
                     $this->session->secure_cookie($this->request, 'hm_msgs', base64_encode(serialize($msgs)), 0);
                 }
                 $this->session->close_early();
                 $this->out('nux_account_added', true);
             } else {
                 Hm_IMAP_List::del($new_id);
                 Hm_Msgs::add('ERRAuthentication failed');
             }
         }
     }
 }
예제 #2
0
파일: modules.php 프로젝트: GordonDiggs/hm3
 /**
  * This list is cached in the session between page loads by Hm_Handler_save_imap_servers
  */
 public function process()
 {
     $servers = $this->user_config->get('imap_servers', array());
     $added = false;
     $updated = false;
     $new_servers = array();
     foreach ($servers as $index => $server) {
         if ($this->session->loaded) {
             if (array_key_exists('expiration', $server)) {
                 $updated = true;
                 $server['expiration'] = 1;
             }
         }
         $new_servers[] = $server;
         Hm_IMAP_List::add($server, $index);
         if ($server['name'] == 'Default-Auth-Server') {
             $added = true;
         }
     }
     if ($updated) {
         $this->user_config->set('imap_servers', $new_servers);
     }
     if (!$added) {
         $auth_server = $this->session->get('imap_auth_server_settings', array());
         if (!empty($auth_server)) {
             Hm_IMAP_List::add(array('name' => 'Default-Auth-Server', 'server' => $auth_server['server'], 'port' => $auth_server['port'], 'tls' => $auth_server['tls'], 'user' => $auth_server['username'], 'pass' => $auth_server['password']), count($servers));
         }
     }
 }