Aude has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/80068


Change subject: (bug 50933) pass bot flag to claim saver in wbsetclaim
......................................................................

(bug 50933) pass bot flag to claim saver in wbsetclaim

Change-Id: I4dd3a146d11ff378a0bf96b4ac56c7212a5120bf
---
M repo/includes/ClaimSaver.php
M repo/includes/api/SetClaim.php
2 files changed, 19 insertions(+), 6 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase 
refs/changes/68/80068/1

diff --git a/repo/includes/ClaimSaver.php b/repo/includes/ClaimSaver.php
index a3cabc4..9d7e469 100644
--- a/repo/includes/ClaimSaver.php
+++ b/repo/includes/ClaimSaver.php
@@ -50,6 +50,7 @@
         * @param string $token
         * @param User $user
         * @param ClaimSummaryBuilder|null $claimSummaryBuilder
+        * @param int $flags
         *
         * @return Status The status. The status value is an array which may 
contain
         *         the following fields:
@@ -60,7 +61,9 @@
         *
         *         This status object can be used with 
ApiWikibase::handleSaveStatus().
         */
-       public function saveClaim( Claim $claim, $baseRevId, $token, User 
$user, ClaimSummaryBuilder $claimSummaryBuilder = null ) {
+       public function saveClaim( Claim $claim, $baseRevId, $token, User $user,
+               ClaimSummaryBuilder $claimSummaryBuilder = null, $flags = 0 ) {
+
                try {
                        $entityId = $this->getEntityIdForClaim( $claim );
 
@@ -77,7 +80,7 @@
 
                        $this->updateClaim( $content->getEntity(), $claim );
 
-                       $status = $this->saveChanges( $content, $baseRevId, 
$token, $user, $summary );
+                       $status = $this->saveChanges( $content, $baseRevId, 
$token, $user, $summary, $flags );
                } catch ( ExceptionWithCode $ex ) {
                        // put the error code into the status
                        $value = array( 'errorCode' => $ex->getErrorCode() );
@@ -179,16 +182,21 @@
         * @param string $token
         * @param User $user
         * @param Summary|null $summary
+        * @param int $flags
         *
         * @return Status
         */
-       protected function saveChanges( EntityContent $content, 
$baseRevisionId, $token, User $user, Summary $summary ) {
+       protected function saveChanges( EntityContent $content, 
$baseRevisionId, $token, User $user,
+               Summary $summary, $flags ) {
+
                $baseRevisionId = is_int( $baseRevisionId ) && $baseRevisionId 
> 0 ? $baseRevisionId : false;
                $editEntity = new \Wikibase\EditEntity( $content, $user, 
$baseRevisionId );
 
+               $flags = $flags !== 0 ? $flags | EDIT_UPDATE : EDIT_UPDATE;
+
                $status = $editEntity->attemptSave(
                        $summary !== null ? $summary->toString() : '',
-                       EDIT_UPDATE,
+                       $flags,
                        $token
                );
 
diff --git a/repo/includes/api/SetClaim.php b/repo/includes/api/SetClaim.php
index 867b278..faf4b9f 100644
--- a/repo/includes/api/SetClaim.php
+++ b/repo/includes/api/SetClaim.php
@@ -94,8 +94,12 @@
                $claimSaver = new ClaimSaver();
 
                $params = $this->extractRequestParams();
+
                $baseRevisionId = isset( $params['baserevid'] ) ? intval( 
$params['baserevid'] ) : null;
                $token = isset( $params['token'] ) ? $params['token'] : '';
+
+               $user = $this->getUser();
+               $flags = ( $user->isAllowed( 'bot' ) && $params['bot'] ) ? 
EDIT_FORCE_BOT : 0;
 
                $newRevisionId = null;
 
@@ -103,8 +107,9 @@
                        $claim,
                        $baseRevisionId,
                        $token,
-                       $this->getUser(),
-                       $claimSummaryBuilder
+                       $user,
+                       $claimSummaryBuilder,
+                       $flags
                );
                $this->handleSaveStatus( $status ); // die on error, report 
warnings, etc
 

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I4dd3a146d11ff378a0bf96b4ac56c7212a5120bf
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Aude <[email protected]>

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

Reply via email to