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 <daniel.kinz...@wikimedia.de> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits