-
Notifications
You must be signed in to change notification settings - Fork 3
/
TalkRight.class.php
43 lines (38 loc) · 1.55 KB
/
TalkRight.class.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<?php
/**
* Main class for the Talkright MediaWiki extension
* @author Marc Noirot - marc dot noirot at gmail
* @author P.Levêque - User:Phillev
* @author James Montalvo - User:Jamesmontalvo3
*
*
*/
class TalkRight {
/**
* Bypass edit restriction when EDITING pages if user has 'talk' right and page is a talk (discussion) page.
* @param $&editPage the page edition object
* @return true to resume edition to normal operation
*/
static function alternateEdit( $editPage ) {
global $wgOut, $wgUser, $wgRequest, $wgTitle;
if ( $wgTitle->isTalkPage() && $wgUser->isAllowed( 'talk' ) ) {
array_push( $wgUser->mRights, 'edit' );
}
return true;
}
/**
* Bypass edit restriction when VIEWING pages if user has 'talk' right and page is a talk (discussion) page.
* This is probably not the ideal hook to use. I just needed one earlier than creation of section links, edit tab and add topic tab
* @param &$parser parser object, used to gain access to User and Title objects
* @param &$text unused
* @param &$strip_state unused
* @return true and false both seemed to work. [[Manual:Hooks/ParserBeforeStrip]] doesn't indicate what return value affects
*/
static function giveEditRightsWhenViewingTalkPages ( &$parser, &$test1, &$test2 ) {
$user = $parser->getUser();
if ( $parser->getTitle()->isTalkPage() && $user->isAllowed( 'talk' ) ) {
array_push( $user->mRights, 'edit' );
}
return true;
}
}