MarkAHershberger has uploaded a new change for review. (
https://gerrit.wikimedia.org/r/404779 )
Change subject: Fix Lockdown deprecation notice
......................................................................
Fix Lockdown deprecation notice
Also address some codesniffer problems
Bug: T185105
Change-Id: I5a66085ad7eb228fa82b2a8d6ea9919f25667864
---
M src/Hooks.php
1 file changed, 37 insertions(+), 13 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Lockdown
refs/changes/79/404779/1
diff --git a/src/Hooks.php b/src/Hooks.php
index 9b1cb87..dc9dac6 100644
--- a/src/Hooks.php
+++ b/src/Hooks.php
@@ -44,6 +44,33 @@
*/
class Hooks {
+ private static function shouldNotLockdown( Title $title, $action ) {
+ global $wgWhitelistRead;
+
+ // don't impose extra restrictions on UI pages
+ if ( $title->isCssJsSubpage() ) {
+ return true;
+ }
+
+ if ( $action == 'read' && is_array( $wgWhitelistRead ) ) {
+ // don't impose read restrictions on whitelisted pages
+ if ( in_array( $title->getPrefixedText(),
$wgWhitelistRead ) ) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ // Shim to avoid deprecation notice while still being usable on 1.27
+ private static function getGroupLinks( $groups ) {
+ if ( method_exists( 'UserGroupMembership', 'getGroupName' ) ) {
+ $groupLinks = array_map( [ 'UserGroupMembership',
'getGroupName' ], $groups );
+ } else {
+ $groupLinks = array_map( [ 'User', 'makeGroupLinkWiki'
], $groups );
+ }
+ return $groupLinks;
+ }
+
/**
* Fetch an appropriate permission error (or none!)
*
@@ -56,6 +83,7 @@
* error message keys when multiple messages are needed
* @return bool
* @see
https://www.mediawiki.org/wiki/Manual:Hooks/getUserPermissionsErrors
+ * @SuppressWarnings(ShortVariable)
*/
public static function onGetUserPermissionsErrors(
Title $title,
@@ -63,20 +91,12 @@
$action,
&$result = null
) {
- global $wgSpecialPageLockdown, $wgWhitelistRead, $wgLang;
+ global $wgSpecialPageLockdown, $wgLang;
$result = null;
- // don't impose extra restrictions on UI pages
- if ( $title->isCssJsSubpage() ) {
+ if ( self::shouldNotLockdown( $title, $action ) ) {
return true;
- }
-
- if ( $action == 'read' && is_array( $wgWhitelistRead ) ) {
- // don't impose read restrictions on whitelisted pages
- if ( in_array( $title->getPrefixedText(),
$wgWhitelistRead ) ) {
- return true;
- }
}
$groups = null;
@@ -118,7 +138,7 @@
return true;
} else {
# group is denied - abort
- $groupLinks = array_map( [ 'User', 'makeGroupLinkWiki'
], $groups );
+ $groupLinks = self::getGroupLinks( $groups );
$result = [
'badaccess-groups',
@@ -142,6 +162,7 @@
* @param MediaWiki $wiki used to get the parsed action
* @return bool
* @see
https://www.mediawiki.org/wiki/Manual:Hooks/MediaWikiPerformAction
+ * @SuppressWarnings(UnusedFormalParameter)
*/
public static function onMediawikiPerformAction(
OutputPage $output,
@@ -173,7 +194,7 @@
if ( $match ) {
return true;
} else {
- $groupLinks = array_map( [ 'User', 'makeGroupLinkWiki'
], $groups );
+ $groupLinks = self::getGroupLinks( $groups );
$err = [
'badaccess-groups', $wgLang->commaList(
$groupLinks ),
@@ -195,7 +216,7 @@
$user = RequestContext::getMain()->getUser();
$ugroups = $user->getEffectiveGroups();
- foreach ( $searchableNs as $ns => $name ) {
+ foreach ( array_keys( $searchableNs ) as $ns ) {
if ( !self::namespaceCheck( $ns, $ugroups ) ) {
unset( $searchableNs[$ns] );
}
@@ -208,6 +229,7 @@
* @param int $ns to check
* @param string $action to check (default: read)
* @return null|array of groups
+ * @SuppressWarnings(ShortVariable)
*/
protected static function namespaceGroups( $ns, $action = 'read' ) {
global $wgNamespacePermissionLockdown;
@@ -234,6 +256,7 @@
* @param int $ns to check
* @param array $ugroups that the user is in
* @return bool false if the user does not have permission
+ * @SuppressWarnings(ShortVariable)
*/
protected static function namespaceCheck( $ns, array $ugroups ) {
$groups = self::namespaceGroups( $ns );
@@ -251,6 +274,7 @@
* @param string $searchterm the term being searched
* @param Title $title Title the user is being sent to
* @see
https://www.mediawiki.org/wiki/Manual:Hooks/SearchGetNearMatchComplete
+ * @SuppressWarnings(UnusedFormalParameter)
*/
public static function onSearchGetNearMatchComplete(
$searchterm,
--
To view, visit https://gerrit.wikimedia.org/r/404779
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I5a66085ad7eb228fa82b2a8d6ea9919f25667864
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Lockdown
Gerrit-Branch: master
Gerrit-Owner: MarkAHershberger <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits