Implement autocompletion for Performer field on Special:Log
[lhc/web/wiklou.git] / includes / logging / LogEventsList.php
index 71dc258..70f1f1a 100644 (file)
@@ -57,17 +57,6 @@ class LogEventsList extends ContextSource {
                $this->flags = $flags;
        }
 
-       /**
-        * Deprecated alias for getTitle(); do not use.
-        *
-        * @deprecated since 1.20; use getTitle() instead.
-        * @return Title
-        */
-       public function getDisplayTitle() {
-               wfDeprecated( __METHOD__, '1.20' );
-               return $this->getTitle();
-       }
-
        /**
         * Show options for the log list
         *
@@ -234,7 +223,8 @@ class LogEventsList extends ContextSource {
                        'user',
                        'mw-log-user',
                        15,
-                       $user
+                       $user,
+                       array( 'class' => 'mw-autocomplete-user' )
                );
 
                return '<span style="white-space: nowrap">' . $label . '</span>';
@@ -355,9 +345,13 @@ class LogEventsList extends ContextSource {
                // Don't show useless checkbox to people who cannot hide log entries
                if ( $user->isAllowed( 'deletedhistory' ) ) {
                        $canHide = $user->isAllowed( 'deletelogentry' );
+                       $canViewSuppressedOnly = $user->isAllowed( 'viewsuppressed' ) &&
+                               !$user->isAllowed( 'suppressrevision' );
+                       $entryIsSuppressed = self::isDeleted( $row, LogPage::DELETED_RESTRICTED );
+                       $canViewThisSuppressedEntry = $canViewSuppressedOnly && $entryIsSuppressed;
                        if ( $row->log_deleted || $canHide ) {
                                // Show checkboxes instead of links.
-                               if ( $canHide && $this->flags & self::USE_REVDEL_CHECKBOXES ) {
+                               if ( $canHide && $this->flags & self::USE_REVDEL_CHECKBOXES && !$canViewThisSuppressedEntry ) {
                                        // If event was hidden from sysops
                                        if ( !self::userCan( $row, LogPage::DELETED_RESTRICTED, $user ) ) {
                                                $del = Xml::check( 'deleterevisions', false, array( 'disabled' => 'disabled' ) );
@@ -380,8 +374,8 @@ class LogEventsList extends ContextSource {
                                                );
                                                $del = Linker::revDeleteLink(
                                                        $query,
-                                                       self::isDeleted( $row, LogPage::DELETED_RESTRICTED ),
-                                                       $canHide
+                                                       $entryIsSuppressed,
+                                                       $canHide && !$canViewThisSuppressedEntry
                                                );
                                        }
                                }
@@ -446,7 +440,8 @@ class LogEventsList extends ContextSource {
                        } else {
                                $permissions = array( 'deletedhistory' );
                        }
-                       wfDebug( "Checking for " . implode( ', ', $permissions ) . " due to $field match on $bitfield\n" );
+                       $permissionlist = implode( ', ', $permissions );
+                       wfDebug( "Checking for $permissionlist due to $field match on $bitfield\n" );
                        return call_user_func_array( array( $user, 'isAllowedAny' ), $permissions );
                }
                return true;