Daniel Kinzler has uploaded a new change for review.
https://gerrit.wikimedia.org/r/71863
Change subject: Add snak validation to wbcreateclaim module.
......................................................................
Add snak validation to wbcreateclaim module.
Prevent invalid snaks to be created via the CreateClaim module.
Change-Id: I49216858fa1b077285a71e6fe206a773aa7c9de7
---
M repo/includes/api/CreateClaim.php
1 file changed, 27 insertions(+), 4 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase
refs/changes/63/71863/1
diff --git a/repo/includes/api/CreateClaim.php
b/repo/includes/api/CreateClaim.php
index 0beb963..9267bda 100644
--- a/repo/includes/api/CreateClaim.php
+++ b/repo/includes/api/CreateClaim.php
@@ -4,9 +4,9 @@
use ApiBase, MWException;
+use ApiMain;
use DataValues\IllegalValueException;
use InvalidArgumentException;
-use UsageException;
use ValueParsers\ParseException;
use Wikibase\EntityId;
use Wikibase\Entity;
@@ -14,13 +14,12 @@
use Wikibase\EntityContentFactory;
use Wikibase\Property;
use Wikibase\Repo\WikibaseRepo;
-use Wikibase\SnakFactory;
use Wikibase\LibRegistry;
use Wikibase\Claim;
use Wikibase\Autocomment;
-use Wikibase\Settings;
use Wikibase\Summary;
use Wikibase\Snak;
+use Wikibase\Validators\ValidatorErrorLocalizer;
/**
* API module for creating claims.
@@ -51,7 +50,29 @@
*/
class CreateClaim extends ModifyClaim {
- // TODO: rights
+
+ /**
+ * @var SnakValidationHelper
+ */
+ protected $snakValidation;
+
+ /**
+ * see ApiBase::__construct()
+ *
+ * @param ApiMain $mainModule
+ * @param string $moduleName
+ * @param string $modulePrefix
+ */
+ public function __construct( ApiMain $mainModule, $moduleName,
$modulePrefix = '' ) {
+ parent::__construct( $mainModule, $moduleName, $modulePrefix );
+
+ $this->snakValidation = new SnakValidationHelper(
+ $this,
+
WikibaseRepo::getDefaultInstance()->getPropertyDataTypeLookup(),
+
WikibaseRepo::getDefaultInstance()->getDataTypeFactory(),
+ new ValidatorErrorLocalizer()
+ );
+ }
/**
* @see \ApiBase::execute
@@ -85,6 +106,8 @@
$this->dieUsage( $parseException->getMessage(),
'claim-invalid-guid' );
}
+ $this->snakValidation->validateSnak( $snak );
+
$claim = $this->addClaim( $entityContent->getEntity(), $snak );
$summary = $this->createSummary( $snak, 'create' );
--
To view, visit https://gerrit.wikimedia.org/r/71863
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I49216858fa1b077285a71e6fe206a773aa7c9de7
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Daniel Kinzler <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits