jenkins-bot has submitted this change and it was merged. ( 
https://gerrit.wikimedia.org/r/327491 )

Change subject: Improve interface for users who cannot modify filters or 
interface
......................................................................


Improve interface for users who cannot modify filters or interface

Make selectors for groups and warnings read-only and also don't show
edit button for users without editinterface permission.

Change-Id: I7c27f27ed080396b3a64ccaf9a7ccf2c3231b839
---
M Views/AbuseFilterViewEdit.php
1 file changed, 43 insertions(+), 31 deletions(-)

Approvals:
  Bartosz Dziewoński: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/Views/AbuseFilterViewEdit.php b/Views/AbuseFilterViewEdit.php
index 18658af..d1b46c5 100644
--- a/Views/AbuseFilterViewEdit.php
+++ b/Views/AbuseFilterViewEdit.php
@@ -373,6 +373,10 @@
                                $groupSelector->addOption( 
AbuseFilter::nameGroup( $group ), $group );
                        }
 
+                       if ( !empty( $readOnlyAttrib ) ) {
+                               $groupSelector->setAttribute( 'disabled', 
'disabled' );
+                       }
+
                        $fields['abusefilter-edit-group'] = 
$groupSelector->getHTML();
                }
 
@@ -679,7 +683,7 @@
                                }
 
                                $warnFields['abusefilter-edit-warn-message'] =
-                                       $this->getExistingSelector( $warnMsg );
+                                       $this->getExistingSelector( $warnMsg, 
!empty( $readOnlyAttrib ) );
                                
$warnFields['abusefilter-edit-warn-other-label'] =
                                        Xml::input(
                                                'wpFilterWarnMessageOther',
@@ -696,20 +700,23 @@
                                                'value' => $this->msg( 
'abusefilter-edit-warn-preview' )->text()
                                        ]
                                );
-                               $editButton = Xml::element(
-                                       'input',
-                                       [
-                                               'type' => 'button',
-                                               'id' => 
'mw-abusefilter-warn-edit-button',
-                                               'value' => $this->msg( 
'abusefilter-edit-warn-edit' )->text()
-                                       ]
-                               );
+                               $editButton = '';
+                               if ( $this->getUser()->isAllowed( 
'editinterface' ) ) {
+                                       $editButton .= ' ' . Xml::element(
+                                               'input',
+                                               [
+                                                       'type' => 'button',
+                                                       'id' => 
'mw-abusefilter-warn-edit-button',
+                                                       'value' => $this->msg( 
'abusefilter-edit-warn-edit' )->text()
+                                               ]
+                                       );
+                               }
                                $previewHolder = Xml::element(
                                        'div',
                                        [ 'id' => 'mw-abusefilter-warn-preview' 
], ''
                                );
                                $warnFields['abusefilter-edit-warn-actions'] =
-                                       Xml::tags( 'p', null, "$previewButton 
$editButton" ) . "\n$previewHolder";
+                                       Xml::tags( 'p', null, $previewButton . 
$editButton ) . "\n$previewHolder";
                                $output .=
                                        Xml::tags(
                                                'div',
@@ -766,38 +773,43 @@
        }
 
        /**
-        * @param $warnMsg
+        * @param $warnMsg string
+        * @param $readOnly bool
         * @return string
         */
-       function getExistingSelector( $warnMsg ) {
+       function getExistingSelector( $warnMsg, $readOnly = false ) {
                $existingSelector = new XmlSelect(
                        'wpFilterWarnMessage',
                        'mw-abusefilter-warn-message-existing',
                        $warnMsg == 'abusefilter-warning' ? 
'abusefilter-warning' : 'other'
                );
 
-               // Find other messages.
-               $dbr = wfGetDB( DB_SLAVE );
-               $res = $dbr->select(
-                       'page',
-                       [ 'page_title' ],
-                       [
-                               'page_namespace' => 8,
-                               'page_title LIKE ' . $dbr->addQuotes( 
'Abusefilter-warning%' )
-                       ],
-                       __METHOD__
-               );
-
                $existingSelector->addOption( 'abusefilter-warning' );
 
-               $lang = $this->getLanguage();
-               foreach ( $res as $row ) {
-                       if ( $lang->lcfirst( $row->page_title ) == 
$lang->lcfirst( $warnMsg ) ) {
-                               $existingSelector->setDefault( $lang->lcfirst( 
$warnMsg ) );
-                       }
+               if ( $readOnly ) {
+                       $existingSelector->setAttribute( 'disabled', 'disabled' 
);
+               } else {
+                       // Find other messages.
+                       $dbr = wfGetDB( DB_SLAVE );
+                       $res = $dbr->select(
+                               'page',
+                               [ 'page_title' ],
+                               [
+                                       'page_namespace' => 8,
+                                       'page_title LIKE ' . $dbr->addQuotes( 
'Abusefilter-warning%' )
+                               ],
+                               __METHOD__
+                       );
 
-                       if ( $row->page_title != 'Abusefilter-warning' ) {
-                               $existingSelector->addOption( $lang->lcfirst( 
$row->page_title ) );
+                       $lang = $this->getLanguage();
+                       foreach ( $res as $row ) {
+                               if ( $lang->lcfirst( $row->page_title ) == 
$lang->lcfirst( $warnMsg ) ) {
+                                       $existingSelector->setDefault( 
$lang->lcfirst( $warnMsg ) );
+                               }
+
+                               if ( $row->page_title != 'Abusefilter-warning' 
) {
+                                       $existingSelector->addOption( 
$lang->lcfirst( $row->page_title ) );
+                               }
                        }
                }
 

-- 
To view, visit https://gerrit.wikimedia.org/r/327491
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I7c27f27ed080396b3a64ccaf9a7ccf2c3231b839
Gerrit-PatchSet: 4
Gerrit-Project: mediawiki/extensions/AbuseFilter
Gerrit-Branch: master
Gerrit-Owner: Matěj Suchánek <matejsuchane...@gmail.com>
Gerrit-Reviewer: Bartosz Dziewoński <matma....@gmail.com>
Gerrit-Reviewer: Huji <huji.h...@gmail.com>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to