Merge pull request #19 from gbirke/master

Make cookie path configurable
This commit is contained in:
Dominik Eckelmann 2011-08-18 03:40:04 -07:00
commit b546d86400
6 changed files with 13 additions and 7 deletions

View File

@ -348,10 +348,11 @@ function auth_logoff($keepbc=false){
unset($_SERVER['REMOTE_USER']);
$USERINFO=null; //FIXME
$cookieDir = empty($conf['cookiedir']) ? DOKU_REL : $conf['cookiedir'];
if (version_compare(PHP_VERSION, '5.2.0', '>')) {
setcookie(DOKU_COOKIE,'',time()-600000,DOKU_REL,'',($conf['securecookie'] && is_ssl()),true);
setcookie(DOKU_COOKIE,'',time()-600000,$cookieDir,'',($conf['securecookie'] && is_ssl()),true);
}else{
setcookie(DOKU_COOKIE,'',time()-600000,DOKU_REL,'',($conf['securecookie'] && is_ssl()));
setcookie(DOKU_COOKIE,'',time()-600000,$cookieDir,'',($conf['securecookie'] && is_ssl()));
}
if($auth) $auth->logOff();
@ -977,11 +978,12 @@ function auth_setCookie($user,$pass,$sticky) {
// set cookie
$cookie = base64_encode($user).'|'.((int) $sticky).'|'.base64_encode($pass);
$cookieDir = empty($conf['cookiedir']) ? DOKU_REL : $conf['cookiedir'];
$time = $sticky ? (time()+60*60*24*365) : 0; //one year
if (version_compare(PHP_VERSION, '5.2.0', '>')) {
setcookie(DOKU_COOKIE,$cookie,$time,DOKU_REL,'',($conf['securecookie'] && is_ssl()),true);
setcookie(DOKU_COOKIE,$cookie,$time,$cookieDir,'',($conf['securecookie'] && is_ssl()),true);
}else{
setcookie(DOKU_COOKIE,$cookie,$time,DOKU_REL,'',($conf['securecookie'] && is_ssl()));
setcookie(DOKU_COOKIE,$cookie,$time,$cookieDir,'',($conf['securecookie'] && is_ssl()));
}
// set session
$_SESSION[DOKU_COOKIE]['auth']['user'] = $user;

View File

@ -146,10 +146,11 @@ if ($conf['gzip_output'] &&
// init session
if (!headers_sent() && !defined('NOSESSION')){
session_name("DokuWiki");
$cookieDir = empty($conf['cookiedir']) ? DOKU_REL : $conf['cookiedir'];
if (version_compare(PHP_VERSION, '5.2.0', '>')) {
session_set_cookie_params(0,DOKU_REL,'',($conf['securecookie'] && is_ssl()),true);
session_set_cookie_params(0,$cookieDir,'',($conf['securecookie'] && is_ssl()),true);
}else{
session_set_cookie_params(0,DOKU_REL,'',($conf['securecookie'] && is_ssl()));
session_set_cookie_params(0,$cookieDir,'',($conf['securecookie'] && is_ssl()));
}
session_start();

View File

@ -50,6 +50,7 @@ $lang['dmode'] = 'Rechte für neue Verzeichnisse';
$lang['lang'] = 'Sprache';
$lang['basedir'] = 'Installationsverzeichnis';
$lang['baseurl'] = 'Installationspfad (URL)';
$lang['cookiedir'] = 'Cookiepfad. Frei lassen, um den gleichen Pfad wie "baseurl" zu benutzen.';
$lang['savedir'] = 'Speicherverzeichnis';
$lang['start'] = 'Startseitenname';
$lang['title'] = 'Titel des Wikis';

View File

@ -58,6 +58,7 @@ $lang['lang'] = 'Interface language';
$lang['basedir'] = 'Server path (eg. <code>/dokuwiki/</code>). Leave blank for autodetection.';
$lang['baseurl'] = 'Server URL (eg. <code>http://www.yourserver.com</code>). Leave blank for autodetection.';
$lang['savedir'] = 'Directory for saving data';
$lang['cookiedir'] = 'Cookie path. Leave blank for using baseurl.';
$lang['start'] = 'Start page name';
$lang['title'] = 'Wiki title';
$lang['template'] = 'Template';

View File

@ -341,7 +341,7 @@ if (!class_exists('setting')) {
var $_input = NULL; // only used by those classes which error check
var $_cautionList = array(
'basedir' => 'danger', 'baseurl' => 'danger', 'savedir' => 'danger', 'useacl' => 'danger', 'authtype' => 'danger', 'superuser' => 'danger', 'userewrite' => 'danger',
'basedir' => 'danger', 'baseurl' => 'danger', 'savedir' => 'danger', 'cookiedir' => 'danger', 'useacl' => 'danger', 'authtype' => 'danger', 'superuser' => 'danger', 'userewrite' => 'danger',
'start' => 'warning', 'camelcase' => 'warning', 'deaccent' => 'warning', 'sepchar' => 'warning', 'compression' => 'warning', 'xsendfile' => 'warning', 'renderer_xhtml' => 'warning', 'fnencode' => 'warning',
'allowdebug' => 'security', 'htmlok' => 'security', 'phpok' => 'security', 'iexssprotect' => 'security', 'xmlrpc' => 'security', 'fullpath' => 'security'
);

View File

@ -95,6 +95,7 @@ $meta['license'] = array('license');
$meta['savedir'] = array('savedir');
$meta['basedir'] = array('string');
$meta['baseurl'] = array('string');
$meta['cookiedir'] = array('string');
$meta['dmode'] = array('numeric','_pattern' => '/0[0-7]{3,4}/'); // only accept octal representation
$meta['fmode'] = array('numeric','_pattern' => '/0[0-7]{3,4}/'); // only accept octal representation
$meta['allowdebug'] = array('onoff');