| | |
| | | if (!($this->output instanceof rcube_template)) |
| | | $this->output = new rcube_template($this->task, $framed); |
| | | |
| | | 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)); |
| | | } |
| | | |
| | | // set keep-alive/check-recent interval |
| | | if ($keep_alive = $this->config->get('keep_alive')) { |
| | | // be sure that it's less than session lifetime |
| | |
| | | 'imap' => $this->config->get('imap_auth_type', 'check'), |
| | | 'delimiter' => isset($_SESSION['imap_delimiter']) ? $_SESSION['imap_delimiter'] : $this->config->get('imap_delimiter'), |
| | | 'rootdir' => isset($_SESSION['imap_root']) ? $_SESSION['imap_root'] : $this->config->get('imap_root'), |
| | | 'debug_mode' => (bool) $this->config->get('imap_debug', 0), |
| | | ); |
| | | |
| | | $this->imap->set_options($options); |
| | |
| | | */ |
| | | public function kill_session() |
| | | { |
| | | $this->plugins->exec_hook('kill_session'); |
| | | |
| | | rcube_sess_unset(); |
| | | $_SESSION = array('language' => $this->user->language, 'auth_time' => time(), 'temp' => true); |
| | | rcmail::setcookie('sessauth', '-del-', time() - 60); |
| | |
| | | |
| | | |
| | | /** |
| | | * Generate a unique token to be used in a form request |
| | | * |
| | | * @param string Request identifier |
| | | * @return string The request token |
| | | */ |
| | | public function get_request_token($key) |
| | | { |
| | | if (!$this->request_tokens[$key]) |
| | | $_SESSION['request_tokens'][$key] = $this->request_tokens[$key] = md5(uniqid($key . rand(), true)); |
| | | |
| | | return $this->request_tokens[$key]; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * Check if the current request contains a valid token |
| | | * |
| | | * @param string Request identifier |
| | | * @return boolean True if request token is valid false if not |
| | | */ |
| | | public function check_request($key, $mode = RCUBE_INPUT_POST) |
| | | { |
| | | $token = get_input_value('_token', $mode); |
| | | $valid = !(empty($token) || $_SESSION['request_tokens'][$key] != $token); |
| | | |
| | | if ($valid) |
| | | unset($_SESSION['request_tokens'][$key]); |
| | | |
| | | return $valid; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * Create unique authorization hash |
| | | * |
| | | * @param string Session ID |
| | |
| | | */ |
| | | public function encrypt($clear, $key = 'des_key', $base64 = true) |
| | | { |
| | | if (!$clear) |
| | | return ''; |
| | | /*- |
| | | * Add a single canary byte to the end of the clear text, which |
| | | * will help find out how much of padding will need to be removed |
| | |
| | | */ |
| | | public function decrypt($cipher, $key = 'des_key', $base64 = true) |
| | | { |
| | | if (!$cipher) |
| | | return ''; |
| | | |
| | | $cipher = $base64 ? base64_decode($cipher) : $cipher; |
| | | |
| | | if (function_exists('mcrypt_module_open') && |