add authname memory cache
actions which concern multiple pages (e.g. search, backlinks, recents) end up repeatedly encoding the current user's name and groups. This change caches the results of the encoding allowing them to be reused. darcs-hash:20060923161206-9b6ab-a3ec8f1c2ec284d84b9ff85cba1e56165b2967a7.gz
This commit is contained in:
parent
720307d9ce
commit
a424cd8e52
19
inc/auth.php
19
inc/auth.php
|
@ -380,13 +380,20 @@ function auth_aclcheck($id,$user,$groups){
|
|||
* @see rawurldecode()
|
||||
*/
|
||||
function auth_nameencode($name,$skip_group=false){
|
||||
if($skip_group && $name{0} =='@'){
|
||||
return '@'.preg_replace('/([\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f])/e',
|
||||
"'%'.dechex(ord('\\1'))",substr($name,1));
|
||||
}else{
|
||||
return preg_replace('/([\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f])/e',
|
||||
"'%'.dechex(ord('\\1'))",$name);
|
||||
global $cache_authname;
|
||||
$cache =& $cache_authname;
|
||||
|
||||
if (!isset($cache[$name][$skip_group])) {
|
||||
if($skip_group && $name{0} =='@'){
|
||||
$cache[$name][$skip_group] = '@'.preg_replace('/([\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f])/e',
|
||||
"'%'.dechex(ord('\\1'))",substr($name,1));
|
||||
}else{
|
||||
$cache[$name][$skip_group] = preg_replace('/([\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f])/e',
|
||||
"'%'.dechex(ord('\\1'))",$name);
|
||||
}
|
||||
}
|
||||
|
||||
return $cache[$name][$skip_group];
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -24,9 +24,10 @@
|
|||
else { error_reporting(DOKU_E_LEVEL); }
|
||||
|
||||
// init memory caches
|
||||
global $cache_revinfo; $cache_revinfo = array();
|
||||
global $cache_wikifn; $cache_wikifn = array();
|
||||
global $cache_wikifn; $cache_cleanid = array();
|
||||
global $cache_revinfo; $cache_revinfo = array();
|
||||
global $cache_wikifn; $cache_wikifn = array();
|
||||
global $cache_cleanid; $cache_cleanid = array();
|
||||
global $cache_authname; $cache_authname = array();
|
||||
|
||||
//prepare config array()
|
||||
global $conf;
|
||||
|
|
Loading…
Reference in New Issue