Added session_path config option and unified cookies settings in javascript
| | |
| | | CHANGELOG Roundcube Webmail |
| | | =========================== |
| | | |
| | | - Added session_path config option and unified cookies settings in javascript |
| | | - Added "Undeleted" option to messages list filter |
| | | - Rewritten test scripts for PHPUnit |
| | | - Add new DB abstraction layer based on PHP PDO, supporting SQLite3 (#1488332) |
| | |
| | | // must be greater than 'keep_alive'/60 |
| | | $rcmail_config['session_lifetime'] = 10; |
| | | |
| | | // session domain: .example.org |
| | | // Session domain: .example.org |
| | | $rcmail_config['session_domain'] = ''; |
| | | |
| | | // session name. Default: 'roundcube_sessid' |
| | | // Session name. Default: 'roundcube_sessid' |
| | | $rcmail_config['session_name'] = null; |
| | | |
| | | // Session path. Defaults to PHP session.cookie_path setting. |
| | | $rcmail_config['session_path'] = null; |
| | | |
| | | // Backend to use for session storage. Can either be 'db' (default) or 'memcache' |
| | | // If set to memcache, a list of servers need to be specified in 'memcache_hosts' |
| | | // Make sure the Memcache extension (http://pecl.php.net/package/memcache) version >= 2.0.0 is installed |
| | |
| | | |
| | | $sess_name = $this->config->get('session_name'); |
| | | $sess_domain = $this->config->get('session_domain'); |
| | | $sess_path = $this->config->get('session_path'); |
| | | $lifetime = $this->config->get('session_lifetime', 0) * 60; |
| | | |
| | | // set session domain |
| | | if ($sess_domain) { |
| | | ini_set('session.cookie_domain', $sess_domain); |
| | | } |
| | | // set session path |
| | | if ($sess_path) { |
| | | ini_set('session.cookie_path', $sess_path); |
| | | } |
| | | // set session garbage collecting time according to session_lifetime |
| | | if ($lifetime) { |
| | | ini_set('session.gc_maxlifetime', $lifetime * 2); |
| | |
| | | $this->set_env('task', $task); |
| | | $this->set_env('x_frame_options', $this->config->get('x_frame_options', 'sameorigin')); |
| | | |
| | | // add cookie info |
| | | $this->set_env('cookie_domain', ini_get('session.cookie_domain')); |
| | | $this->set_env('cookie_path', ini_get('session.cookie_path')); |
| | | $this->set_env('cookie_secure', ini_get('session.cookie_secure')); |
| | | |
| | | // load the correct skin (in case user-defined) |
| | | $skin = $this->config->get('skin'); |
| | | $this->set_skin($skin); |
| | |
| | | return 0; |
| | | }; |
| | | |
| | | // Cookie setter |
| | | this.set_cookie = function(name, value, expires) |
| | | { |
| | | setCookie(name, value, expires, this.env.cookie_path, this.env.cookie_domain, this.env.cookie_secure); |
| | | } |
| | | |
| | | } // end object rcube_webmail |
| | | |
| | | |
| | |
| | | } |
| | | }; |
| | | |
| | | rcube_webmail.prototype.get_cookie = getCookie; |
| | | |
| | | // copy event engine prototype |
| | | rcube_webmail.prototype.addEventListener = rcube_event_engine.prototype.addEventListener; |
| | | rcube_webmail.prototype.removeEventListener = rcube_event_engine.prototype.removeEventListener; |
| | |
| | | return unescape(dc.substring(begin + prefix.length, end)); |
| | | }; |
| | | |
| | | // deprecated aliases, to be removed, use rcmail.set_cookie/rcmail.get_cookie |
| | | roundcube_browser.prototype.set_cookie = setCookie; |
| | | roundcube_browser.prototype.get_cookie = getCookie; |
| | | |
| | |
| | | function GoogieSpell(img_dir, server_url, has_dict) |
| | | { |
| | | var ref = this, |
| | | cookie_value = getCookie('language'); |
| | | cookie_value = rcmail.get_cookie('language'); |
| | | |
| | | GOOGIE_CUR_LANG = cookie_value != null ? cookie_value : GOOGIE_DEFAULT_LANG; |
| | | |
| | |
| | | //Set cookie |
| | | var now = new Date(); |
| | | now.setTime(now.getTime() + 365 * 24 * 60 * 60 * 1000); |
| | | setCookie('language', lan_code, now); |
| | | rcmail.set_cookie('language', lan_code, now); |
| | | }; |
| | | |
| | | this.setForceWidthHeight = function(width, height) |
| | |
| | | rcube_event.add_listener({element: window, event:'resize', object:this, method:'onResize'}); |
| | | |
| | | // read saved position from cookie |
| | | var cookie = bw.get_cookie(this.id); |
| | | var cookie = rcmail.get_cookie(this.id); |
| | | if (cookie && !isNaN(cookie)) { |
| | | this.pos = parseFloat(cookie); |
| | | this.resize(); |
| | |
| | | { |
| | | var exp = new Date(); |
| | | exp.setYear(exp.getFullYear() + 1); |
| | | bw.set_cookie(this.id, this.pos, exp); |
| | | rcmail.set_cookie(this.id, this.pos, exp); |
| | | }; |
| | | |
| | | } // end class rcube_splitter |
| | |
| | | var button = $(e.target), |
| | | frame = $('#mailpreviewframe'), |
| | | visible = !frame.is(':visible'), |
| | | splitter = mailviewsplit.pos || parseInt(bw.get_cookie('mailviewsplitter') || 320), |
| | | splitter = mailviewsplit.pos || parseInt(rcmail.get_cookie('mailviewsplitter') || 320), |
| | | topstyles, bottomstyles, uid; |
| | | |
| | | frame.toggle(); |
| | |
| | | $(window).resize(onResize); |
| | | |
| | | // read saved position from cookie |
| | | var cookie = bw.get_cookie(this.id); |
| | | var cookie = rcmail.get_cookie(this.id); |
| | | if (cookie && !isNaN(cookie)) { |
| | | this.pos = parseFloat(cookie); |
| | | this.resize(); |
| | |
| | | { |
| | | var exp = new Date(); |
| | | exp.setYear(exp.getFullYear() + 1); |
| | | bw.set_cookie(this.id, this.pos, exp); |
| | | rcmail.set_cookie(this.id, this.pos, exp); |
| | | }; |
| | | |
| | | } // end class rcube_splitter |