summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--conf/dokuwiki.php4
-rw-r--r--inc/common.php37
-rw-r--r--inc/html.php6
-rw-r--r--inc/template.php7
-rw-r--r--lib/plugins/config/lang/en/lang.php7
-rw-r--r--lib/plugins/config/settings/config.metadata.php1
6 files changed, 55 insertions, 7 deletions
diff --git a/conf/dokuwiki.php b/conf/dokuwiki.php
index f1290ddd7..5e25c4456 100644
--- a/conf/dokuwiki.php
+++ b/conf/dokuwiki.php
@@ -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 */
diff --git a/inc/common.php b/inc/common.php
index 5dfc49856..962c05c37 100644
--- a/inc/common.php
+++ b/inc/common.php
@@ -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 :
diff --git a/inc/html.php b/inc/html.php
index 24b811d29..e7525ae2d 100644
--- a/inc/html.php
+++ b/inc/html.php
@@ -438,7 +438,7 @@ function html_revisions($first=0){
print ' &ndash; ';
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'];
}
diff --git a/inc/template.php b/inc/template.php
index 5997e0d33..0b37734d8 100644
--- a/inc/template.php
+++ b/inc/template.php
@@ -869,9 +869,8 @@ function tpl_youarehere($sep=' &raquo; '){
*/
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 .= ' &middot; ';
$out .= $lang['lockedby'];
$out .= ': ';
- $out .= $INFO['locked'];
+ $out .= editorinfo($INFO['locked']);
}
if($ret){
return $out;
diff --git a/lib/plugins/config/lang/en/lang.php b/lib/plugins/config/lang/en/lang.php
index 864e79ee1..3de0bbd7d 100644
--- a/lib/plugins/config/lang/en/lang.php
+++ b/lib/plugins/config/lang/en/lang.php
@@ -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";
diff --git a/lib/plugins/config/settings/config.metadata.php b/lib/plugins/config/settings/config.metadata.php
index 4c86c2370..ee558b767 100644
--- a/lib/plugins/config/settings/config.metadata.php
+++ b/lib/plugins/config/settings/config.metadata.php
@@ -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