editor_info_patch
At present, DW shows the username on the bottom left under "logged in as", and the login name for "last modified", "locked by" and under revisions/recent changes. In a corporate environment, particularly when integrated with a Single Sign-On system, the login name may be somewhat unfriendly. This patch makes the "logged in as" the same as the value used elsewhere and also allows an admin to decide whether it should be the login name, username or e-mail address that is displayed. The e-mail address may also, optionally, be a mailto: link. E-mail addresses are obfuscated according to the 'mailguard' setting. The default behaviour is to show the login name which is no change from previous behaviour for the "last modified"/"locked by"/revisions/"recent changes", but is a change for the "logged in as". darcs-hash:20081001152914-6ad63-9cd7174068ac55de381f1318a4401f8c51de5b0c.gz
This commit is contained in:
parent
5babd79b8d
commit
dc58b6f495
|
@ -43,6 +43,10 @@ $conf['deaccent'] = 1; //deaccented chars in pagenames (1) or
|
|||
$conf['useheading'] = 0; //use the first heading in a page as its name
|
||||
$conf['refcheck'] = 1; //check for references before deleting media files
|
||||
$conf['refshow'] = 0; //how many references should be shown, 5 is a good value
|
||||
$conf['showuseras'] = 'loginname'; // 'loginname' users login name
|
||||
// 'username' users full name
|
||||
// 'email' e-mail address (will be obfuscated as per mailguard)
|
||||
// 'email_link' e-mail address as a mailto: link (obfuscated)
|
||||
|
||||
/* Antispam Features */
|
||||
|
||||
|
|
|
@ -1271,4 +1271,41 @@ function shorten($keep,$short,$max,$min=9,$char='⌇'){
|
|||
return $keep.utf8_substr($short,0,$half-1).$char.utf8_substr($short,$len-$half);
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the users realname or e-mail address for use
|
||||
* in page footer and recent changes pages
|
||||
*
|
||||
* @author Andy Webber <dokuwiki AT andywebber DOT com>
|
||||
*/
|
||||
function editorinfo($username){
|
||||
global $conf;
|
||||
global $auth;
|
||||
|
||||
switch($conf['showuseras']){
|
||||
case 'username':
|
||||
case 'email':
|
||||
case 'email_link':
|
||||
$info = $auth->getUserData($username);
|
||||
break;
|
||||
default:
|
||||
return hsc($username);
|
||||
}
|
||||
|
||||
if(isset($info) && $info) {
|
||||
switch($conf['showuseras']){
|
||||
case 'username':
|
||||
return hsc($info['name']);
|
||||
case 'email':
|
||||
return obfuscate($info['mail']);
|
||||
case 'email_link':
|
||||
$mail=obfuscate($info['mail']);
|
||||
return '<a href="mailto:'.$mail.'">'.$mail.'</a>';
|
||||
default:
|
||||
return hsc($username);
|
||||
}
|
||||
} else {
|
||||
return hsc($username);
|
||||
}
|
||||
}
|
||||
|
||||
//Setup VIM: ex: et ts=2 enc=utf-8 :
|
||||
|
|
|
@ -438,7 +438,7 @@ function html_revisions($first=0){
|
|||
print ' – ';
|
||||
print htmlspecialchars($INFO['sum']);
|
||||
print ' <span class="user">';
|
||||
print (empty($INFO['editor']))?('('.$lang['external_edit'].')'):htmlspecialchars($INFO['editor']);
|
||||
print (empty($INFO['editor']))?('('.$lang['external_edit'].')'):editorinfo($INFO['editor']);
|
||||
print '</span> ';
|
||||
|
||||
print '('.$lang['current'].')';
|
||||
|
@ -482,7 +482,7 @@ function html_revisions($first=0){
|
|||
print htmlspecialchars($info['sum']);
|
||||
print ' <span class="user">';
|
||||
if($info['user']){
|
||||
print htmlspecialchars($info['user']);
|
||||
print editorinfo($info['user']);
|
||||
}else{
|
||||
print $info['ip'];
|
||||
}
|
||||
|
@ -576,7 +576,7 @@ function html_recent($first=0){
|
|||
|
||||
print ' <span class="user">';
|
||||
if($recent['user']){
|
||||
print htmlspecialchars($recent['user']);
|
||||
print editorinfo($recent['user']);
|
||||
}else{
|
||||
print $recent['ip'];
|
||||
}
|
||||
|
|
|
@ -869,9 +869,8 @@ function tpl_youarehere($sep=' » '){
|
|||
*/
|
||||
function tpl_userinfo(){
|
||||
global $lang;
|
||||
global $INFO;
|
||||
if($_SERVER['REMOTE_USER']){
|
||||
print $lang['loggedinas'].': '.$INFO['userinfo']['name'];
|
||||
print $lang['loggedinas'].': '.editorinfo($_SERVER['REMOTE_USER']);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
@ -914,7 +913,7 @@ function tpl_pageinfo($ret=false){
|
|||
$out .= $date;
|
||||
if($INFO['editor']){
|
||||
$out .= ' '.$lang['by'].' ';
|
||||
$out .= $INFO['editor'];
|
||||
$out .= editorinfo($INFO['editor']);
|
||||
}else{
|
||||
$out .= ' ('.$lang['external_edit'].')';
|
||||
}
|
||||
|
@ -922,7 +921,7 @@ function tpl_pageinfo($ret=false){
|
|||
$out .= ' · ';
|
||||
$out .= $lang['lockedby'];
|
||||
$out .= ': ';
|
||||
$out .= $INFO['locked'];
|
||||
$out .= editorinfo($INFO['locked']);
|
||||
}
|
||||
if($ret){
|
||||
return $out;
|
||||
|
|
|
@ -81,6 +81,7 @@ $lang['indexdelay'] = 'Time delay before indexing (sec)';
|
|||
$lang['relnofollow'] = 'Use rel="nofollow" on external links';
|
||||
$lang['mailguard'] = 'Obfuscate email addresses';
|
||||
$lang['iexssprotect']= 'Check uploaded files for possibly malicious JavaScript or HTML code';
|
||||
$lang['showuseras'] = 'What to display when showing the user that last edited a page';
|
||||
|
||||
/* Authentication Options */
|
||||
$lang['useacl'] = 'Use access control lists';
|
||||
|
@ -210,3 +211,9 @@ $lang['xsendfile_o_0'] = "don't use";
|
|||
$lang['xsendfile_o_1'] = 'Proprietary lighttpd header (before release 1.5)';
|
||||
$lang['xsendfile_o_2'] = 'Standard X-Sendfile header';
|
||||
$lang['xsendfile_o_3'] = 'Proprietary Nginx X-Accel-Redirect header';
|
||||
|
||||
/* Display user info */
|
||||
$lang['showuseras_o_loginname'] = 'Login name';
|
||||
$lang['showuseras_o_username'] = "User's full name";
|
||||
$lang['showuseras_o_email'] = "User's e-mail addresss (obfuscated according to mailguard setting)";
|
||||
$lang['showuseras_o_email_link'] = "User's e-mail addresss as a mailto: link";
|
||||
|
|
|
@ -99,6 +99,7 @@ $meta['fullpath'] = array('onoff');
|
|||
$meta['typography'] = array('multichoice','_choices' => array(0,1,2));
|
||||
$meta['dformat'] = array('string');
|
||||
$meta['signature'] = array('string');
|
||||
$meta['showuseras'] = array('multichoice','_choices' => array('loginname','username','email','email_link'));
|
||||
$meta['toptoclevel'] = array('multichoice','_choices' => array(1,2,3,4,5)); // 5 toc levels
|
||||
$meta['maxtoclevel'] = array('multichoice','_choices' => array(0,1,2,3,4,5));
|
||||
$meta['maxseclevel'] = array('multichoice','_choices' => array(0,1,2,3,4,5)); // 0 for no sec edit buttons
|
||||
|
|
Loading…
Reference in New Issue