| | |
| | | { |
| | | $config_all = $this->config->all(); |
| | | |
| | | // initialize syslog |
| | | if ($this->config->get('log_driver') == 'syslog') { |
| | | $syslog_id = $this->config->get('syslog_id', 'roundcube'); |
| | | $syslog_facility = $this->config->get('syslog_facility', LOG_USER); |
| | | openlog($syslog_id, LOG_ODELAY, $syslog_facility); |
| | | } |
| | | |
| | | // set task and action properties |
| | | $this->set_task(strip_quotes(get_input_value('_task', RCUBE_INPUT_GPC))); |
| | | $this->action = asciiwords(get_input_value('_action', RCUBE_INPUT_GPC)); |
| | |
| | | $_SESSION['auth_time'] = time(); |
| | | $_SESSION['temp'] = true; |
| | | } |
| | | |
| | | |
| | | // create user object |
| | | $this->set_user(new rcube_user($_SESSION['user_id'])); |
| | |
| | | public function get_dbh() |
| | | { |
| | | if (!$this->db) { |
| | | $dbclass = "rcube_" . $this->config->get('db_backend', 'mdb2'); |
| | | $config_all = $this->config->all(); |
| | | |
| | | $this->db = new $dbclass($config_all['db_dsnw'], $config_all['db_dsnr'], $config_all['db_persistent']); |
| | | $this->db = new rcube_mdb2($config_all['db_dsnw'], $config_all['db_dsnr'], $config_all['db_persistent']); |
| | | $this->db->sqlite_initials = INSTALL_PATH . 'SQL/sqlite.initial.sql'; |
| | | $this->db->set_debug((bool)$config_all['sql_debug']); |
| | | $this->db->db_connect('w'); |
| | |
| | | |
| | | |
| | | /** |
| | | * Return instance of the internal address book class |
| | | * |
| | | * @param boolean True if the address book needs to be writeable |
| | | * @return object rcube_contacts Address book object |
| | | */ |
| | | public function get_address_book($id, $writeable = false) |
| | | { |
| | | $contacts = null; |
| | | $ldap_config = (array)$this->config->get('ldap_public'); |
| | | $abook_type = strtolower($this->config->get('address_book_type')); |
| | | |
| | | if ($id && $ldap_config[$id]) { |
| | | $contacts = new rcube_ldap($ldap_config[$id]); |
| | | } |
| | | else if ($abook_type == 'ldap') { |
| | | // Use the first writable LDAP address book. |
| | | foreach ($ldap_config as $id => $prop) { |
| | | if (!$writeable || $prop['writable']) { |
| | | $contacts = new rcube_ldap($prop); |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | else { |
| | | $contacts = new rcube_contacts($this->db, $this->user->ID); |
| | | } |
| | | |
| | | return $contacts; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * Init output object for GUI and add common scripts. |
| | | * This will instantiate a rcmail_template object and set |
| | | * environment vars according to the current session and configuration |
| | | * |
| | | * @param boolean True if this request is loaded in a (i)frame |
| | | * @return object rcube_template Reference to HTML output object |
| | | */ |
| | | public function load_gui($framed = false) |
| | | { |
| | | // init output page |
| | | $this->output = new rcube_template($this->task, $framed); |
| | | if (!($this->output instanceof rcube_template)) |
| | | $this->output = new rcube_template($this->task, $framed); |
| | | |
| | | foreach (array('flag_for_deletion') as $js_config_var) { |
| | | foreach (array('flag_for_deletion','read_when_deleted') as $js_config_var) { |
| | | $this->output->set_env($js_config_var, $this->config->get($js_config_var)); |
| | | } |
| | | |
| | |
| | | |
| | | /** |
| | | * Create an output object for JSON responses |
| | | * |
| | | * @return object rcube_json_output Reference to JSON output object |
| | | */ |
| | | public function init_json() |
| | | { |
| | | $this->output = new rcube_json_output($this->task); |
| | | if (!($this->output instanceof rcube_json_output)) |
| | | $this->output = new rcube_json_output($this->task); |
| | | |
| | | return $this->output; |
| | | } |
| | |
| | | { |
| | | $conn = false; |
| | | |
| | | if ($_SESSION['imap_host']) { |
| | | if ($_SESSION['imap_host'] && !$this->imap->conn) { |
| | | if (!($conn = $this->imap->connect($_SESSION['imap_host'], $_SESSION['username'], $this->decrypt_passwd($_SESSION['password']), $_SESSION['imap_port'], $_SESSION['imap_ssl'], rcmail::get_instance()->config->get('imap_auth_type', 'check')))) { |
| | | if ($this->output) |
| | | $this->output->show_message($this->imap->error_code == -1 ? 'imaperror' : 'sessionerror', 'error'); |
| | |
| | | $this->set_imap_prop(); |
| | | } |
| | | |
| | | return $conn; |
| | | return $conn; |
| | | } |
| | | |
| | | |
| | |
| | | |
| | | unset($p['task']); |
| | | foreach ($p as $par => $val) |
| | | $url .= '&'.urlencode($par).'='.urlencode($val); |
| | | if (isset($val)) |
| | | $url .= '&'.urlencode($par).'='.urlencode($val); |
| | | |
| | | return $url; |
| | | } |