https://www.mediawiki.org/wiki/Special:Code/MediaWiki/112604

Revision: 112604
Author:   emsmith
Date:     2012-02-28 15:38:16 +0000 (Tue, 28 Feb 2012)
Log Message:
-----------
bug 34090 - can't believe there were no permissions checks in this - only 
delete group can delete and reset oversight, hide group can hide and request 
oversight, everybody else can helpful/unhelpful and flag as abuse

Modified Paths:
--------------
    trunk/extensions/ArticleFeedbackv5/api/ApiFlagFeedbackArticleFeedbackv5.php

Modified: 
trunk/extensions/ArticleFeedbackv5/api/ApiFlagFeedbackArticleFeedbackv5.php
===================================================================
--- trunk/extensions/ArticleFeedbackv5/api/ApiFlagFeedbackArticleFeedbackv5.php 
2012-02-28 15:21:45 UTC (rev 112603)
+++ trunk/extensions/ArticleFeedbackv5/api/ApiFlagFeedbackArticleFeedbackv5.php 
2012-02-28 15:38:16 UTC (rev 112604)
@@ -45,6 +45,9 @@
                $direction  = isset( $params['direction'] ) ? 
$params['direction'] : 'increase';
                $where      = array( 'af_id' => $feedbackId );
 
+               // woah, we were not checking for permissions (that could have 
been script kiddy bad)
+               global $wgUser;
+
                // we use ONE db connection that talks to master
                $dbw     = wfGetDB( DB_MASTER );
                $dbw->begin();
@@ -56,7 +59,7 @@
                        // no-op, because this is already broken
                        $error = 'articlefeedbackv5-invalid-feedback-id';
 
-               } elseif ( 'delete' == $flag ) {
+               } elseif ( 'delete' == $flag && $wgUser->isAllowed( 
'aftv5-delete-feedback' )) {
 
                        // deleting means to "mark as oversighted" and "delete" 
it
                        // oversighting also auto-hides the item
@@ -96,7 +99,7 @@
                                $filters['notdeleted'] = 1;
                        }
 
-               } elseif ( 'hide' == $flag ) {
+               } elseif ( 'hide' == $flag && $wgUser->isAllowed( 
'aftv5-hide-feedback' )) {
 
                        // increase means "hide this"
                        if( $direction == 'increase' ) {
@@ -118,7 +121,7 @@
                                $filters = $this->changeFilterCounts( $record, 
$filters, 'show' );
                        }
 
-               } elseif( 'resetoversight' === $flag) {
+               } elseif( 'resetoversight' === $flag && $wgUser->isAllowed( 
'aftv5-delete-feedback' )) {
 
                        $activity = 'decline';
                        // oversight request count becomes 0
@@ -193,7 +196,7 @@
                        }
 
                // NOTE: this is actually request/unrequest oversight and works 
similar to abuse
-               } elseif( 'oversight' === $flag) {
+               } elseif( 'oversight' === $flag && $wgUser->isAllowed( 
'aftv5-hide-feedback' )) {
 
                        if($direction == 'increase') {
                                $activity = 'request';


_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs

Reply via email to