r106986 MediaWiki - Code Review archive

Repository:MediaWiki
Revision:r106985‎ | r106986 | r106987 >
Date:21:56, 21 December 2011
Author:toniher
Status:deferred
Tags:
Comment:
Adding parameter to restrict functions, using parser for getting User object
Modified paths:
  • /trunk/extensions/UserFunctions/UserFunctions.php (modified) (history)
  • /trunk/extensions/UserFunctions/UserFunctions_body.php (modified) (history)

Diff [purge]

Index: trunk/extensions/UserFunctions/UserFunctions_body.php
@@ -11,19 +11,13 @@
1212 return true;
1313 }
1414
15 - /**
16 - * @param $parser Parser
17 - * @param $then string
18 - * @param $else string
19 - * @return string
20 - */
21 - function ifanon( &$parser, $then = '', $else = '' ) {
22 - global $wgUser;
23 - $parser->disableCache();
24 - if($wgUser->isAnon()){
25 - return $then;
26 - }
27 - return $else;
 15+ /**
 16+ * @param $parser Parser
 17+ * @return $obj User
 18+ */
 19+ private function getUserObj($parser) {
 20+ $obj = $parser->getOptions()->mUser;
 21+ return $obj;
2822 }
2923
3024 /**
@@ -33,8 +27,8 @@
3428 * @return string
3529 */
3630 function ifanonObj( &$parser, $frame, $args ) {
37 - global $wgUser;
38 - if($wgUser->isAnon()){
 31+ $myuser = $this->getUserObj($parser);
 32+ if($myuser->isAnon()){
3933 return isset( $args[0] ) ? trim( $frame->expand( $args[0] ) ) : '';
4034 } else {
4135 return isset( $args[1] ) ? trim( $frame->expand( $args[1] ) ) : '';
@@ -43,29 +37,13 @@
4438
4539 /**
4640 * @param $parser Parser
47 - * @param $then string
48 - * @param $else string
49 - * @return string
50 - */
51 - function ifblocked( &$parser, $then = '', $else = '' ) {
52 - global $wgUser;
53 - $parser->disableCache();
54 -
55 - if($wgUser->isBlocked()) {
56 - return $then;
57 - }
58 - return $else;
59 - }
60 -
61 - /**
62 - * @param $parser Parser
6341 * @param $frame PPFrame
6442 * @param $args array
6543 * @return string
6644 */
6745 function ifblockedObj( &$parser, $frame, $args ) {
68 - global $wgUser;
69 - if($wgUser->isBlocked()){
 46+ $myuser = $this->getUserObj($parser);
 47+ if($myuser->isBlocked()){
7048 return isset( $args[0] ) ? trim( $frame->expand( $args[0] ) ) : '';
7149 } else {
7250 return isset( $args[1] ) ? trim( $frame->expand( $args[1] ) ) : '';
@@ -74,28 +52,13 @@
7553
7654 /**
7755 * @param $parser Parser
78 - * @param $then string
79 - * @param $else string
80 - * @return string
81 - */
82 - function ifsysop( &$parser, $then = '', $else = '' ) {
83 - global $wgUser;
84 - $parser->disableCache();
85 - if($wgUser->isAllowed('protect')) {
86 - return $then;
87 - }
88 - return $else;
89 - }
90 -
91 - /**
92 - * @param $parser Parser
9356 * @param $frame PPFrame
9457 * @param $args array
9558 * @return string
9659 */
9760 function ifsysopObj( &$parser, $frame, $args ) {
98 - global $wgUser;
99 - if($wgUser->isAllowed('protect')){
 61+ $myuser = $this->getUserObj($parser);
 62+ if($myuser->isAllowed('protect')){
10063 return isset( $args[0] ) ? trim( $frame->expand( $args[0] ) ) : '';
10164 } else {
10265 return isset( $args[1] ) ? trim( $frame->expand( $args[1] ) ) : '';
@@ -104,32 +67,15 @@
10568
10669 /**
10770 * @param $parser Parser
108 - * @param $grp string
109 - * @param $then string
110 - * @param $else string
111 - * @return string
112 - */
113 - function ifingroup( &$parser, $grp = '', $then = '', $else = '' ) {
114 - global $wgUser;
115 - $parser->disableCache();
116 -
117 - if($grp!=='' && in_array($grp,$wgUser->getEffectiveGroups())){
118 - return $then;
119 - }
120 - return $else;
121 - }
122 -
123 - /**
124 - * @param $parser Parser
12571 * @param $frame PPFrame
12672 * @param $args array
12773 * @return string
12874 */
12975 function ifingroupObj( &$parser, $frame, $args ) {
130 - global $wgUser;
 76+ $myuser = $this->getUserObj($parser);
13177 $grp = isset( $args[0] ) ? trim( $frame->expand( $args[0] ) ) : '';
13278
133 - if($grp!=='' && in_array($grp,$wgUser->getEffectiveGroups())){
 79+ if($grp!=='' && in_array($grp,$myuser->getEffectiveGroups())){
13480 return isset( $args[1] ) ? trim( $frame->expand( $args[1] ) ) : '';
13581 }
13682 return isset( $args[2] ) ? trim( $frame->expand( $args[2] ) ) : '';
@@ -141,13 +87,13 @@
14288 * @return String
14389 */
14490 function realname( &$parser, $alt = '' ) {
145 - global $wgUser;
 91+ $myuser = $this->getUserObj($parser);
14692 $parser->disableCache();
14793
148 - if($wgUser->isAnon() && $alt!=='') {
 94+ if($myuser->isAnon() && $alt!=='') {
14995 return $alt;
15096 }
151 - return $wgUser->getRealName();
 97+ return $myuser->getRealName();
15298 }
15399
154100 /**
@@ -156,13 +102,13 @@
157103 * @return String
158104 */
159105 function username( &$parser, $alt = '' ) {
160 - global $wgUser;
 106+ $myuser = $this->getUserObj($parser);
161107 $parser->disableCache();
162108
163 - if($wgUser->isAnon() && $alt!=='') {
 109+ if($myuser->isAnon() && $alt!=='') {
164110 return $alt;
165111 }
166 - return $wgUser->getName();
 112+ return $myuser->getName();
167113 }
168114
169115 /**
@@ -171,13 +117,13 @@
172118 * @return String
173119 */
174120 function useremail( &$parser, $alt = '' ) {
175 - global $wgUser;
 121+ $myuser = $this->getUserObj($parser);
176122 $parser->disableCache();
177123
178 - if($wgUser->isAnon() && $alt!=='') {
 124+ if($myuser->isAnon() && $alt!=='') {
179125 return $alt;
180126 }
181 - return $wgUser->getEmail();
 127+ return $myuser->getEmail();
182128 }
183129
184130 /**
@@ -186,17 +132,17 @@
187133 * @return String
188134 */
189135 function nickname( &$parser, $alt = '' ) {
190 - global $wgUser;
 136+ $myuser = $this->getUserObj($parser);
191137 $parser->disableCache();
192138
193 - if($wgUser->isAnon()) {
 139+ if($myuser->isAnon()) {
194140 if ( $alt!=='') {
195141 return $alt;
196142 }
197 - return $wgUser->getName();
 143+ return $myuser->getName();
198144 }
199 - $nickname = $wgUser->getOption( 'nickname' );
200 - $nickname = $nickname === '' ? $wgUser->getName() : $nickname;
 145+ $nickname = $myuser->getOption( 'nickname' );
 146+ $nickname = $nickname === '' ? $myuser->getName() : $nickname;
201147 return $nickname;
202148 }
203149
Index: trunk/extensions/UserFunctions/UserFunctions.php
@@ -22,6 +22,15 @@
2323 die( 'This file is a MediaWiki extension, it is not a valid entry point' );
2424 }
2525
 26+/**
 27+ * Enable Personal Data Functions
 28+ * Set this to true if you want your users to be able to use the following functions:
 29+ * realname, username, useremail, nickname, ip
 30+ * WARNING: These functions can be used to leak your user's email addresses and real names.
 31+ * If unsure, don't activate these features.
 32+**/
 33+$wgUFEnablePersonalDataFunctions = false;
 34+
2635 $wgExtensionFunctions[] = 'wfSetupUserFunctions';
2736 $wgExtensionCredits['parserhook'][] = array(
2837 'path' => __FILE__,
@@ -58,6 +67,7 @@
5968 * @return bool
6069 */
6170 function registerParser( &$parser ) {
 71+ global $wgUFEnablePersonalDataFunctions;
6272
6373 // These functions accept DOM-style arguments
6474 $parser->setFunctionHook( 'ifanon', array( &$this, 'ifanonObj' ), SFH_OBJECT_ARGS );
@@ -65,12 +75,14 @@
6676 $parser->setFunctionHook( 'ifsysop', array( &$this, 'ifsysopObj' ), SFH_OBJECT_ARGS );
6777 $parser->setFunctionHook( 'ifingroup', array( &$this, 'ifingroupObj' ), SFH_OBJECT_ARGS );
6878
69 - $parser->setFunctionHook( 'realname', array( &$this, 'realname' ) );
70 - $parser->setFunctionHook( 'username', array( &$this, 'username' ) );
71 - $parser->setFunctionHook( 'useremail', array( &$this, 'useremail' ) );
72 - $parser->setFunctionHook( 'nickname', array( &$this, 'nickname' ) );
73 - $parser->setFunctionHook( 'ip', array( &$this, 'ip' ) );
74 -
 79+ if ($wgUFEnablePersonalDataFunctions) {
 80+ $parser->setFunctionHook( 'realname', array( &$this, 'realname' ) );
 81+ $parser->setFunctionHook( 'username', array( &$this, 'username' ) );
 82+ $parser->setFunctionHook( 'useremail', array( &$this, 'useremail' ) );
 83+ $parser->setFunctionHook( 'nickname', array( &$this, 'nickname' ) );
 84+ $parser->setFunctionHook( 'ip', array( &$this, 'ip' ) );
 85+ }
 86+
7587 return true;
7688 }
7789

Past revisions this follows-up on

RevisionCommit summaryAuthorDate
r106597added UserFunctiontoniher20:32, 18 December 2011

Status & tagging log