MediaWiki master
ImageRedirectConstraint.php
Go to the documentation of this file.
1<?php
22
23use Content;
26use StatusValue;
27
37
38 private Content $newContent;
39 private LinkTarget $title;
40 private Authority $performer;
41 private string $result;
42
48 public function __construct(
49 Content $newContent,
50 LinkTarget $title,
51 Authority $performer
52 ) {
53 $this->newContent = $newContent;
54 $this->title = $title;
55 $this->performer = $performer;
56 }
57
58 public function checkConstraint(): string {
59 // Check isn't simple enough to just repeat when getting the status
60 if ( $this->title->getNamespace() === NS_FILE &&
61 $this->newContent->isRedirect() &&
62 !$this->performer->isAllowed( 'upload' )
63 ) {
64 $this->result = self::CONSTRAINT_FAILED;
65 return self::CONSTRAINT_FAILED;
66 }
67
68 $this->result = self::CONSTRAINT_PASSED;
69 return self::CONSTRAINT_PASSED;
70 }
71
72 public function getLegacyStatus(): StatusValue {
73 $statusValue = StatusValue::newGood();
74
75 if ( $this->result === self::CONSTRAINT_FAILED ) {
76 $errorCode = $this->performer->getUser()->isRegistered() ?
77 self::AS_IMAGE_REDIRECT_LOGGED :
78 self::AS_IMAGE_REDIRECT_ANON;
79 $statusValue->setResult( false, $errorCode );
80 }
81
82 return $statusValue;
83 }
84
85}
const NS_FILE
Definition Defines.php:71
if(!defined('MW_SETUP_CALLBACK'))
Definition WebStart.php:81
Verify user permissions: If creating a redirect in the file namespace, must have upload rights.
__construct(Content $newContent, LinkTarget $title, Authority $performer)
getLegacyStatus()
Get the legacy status for failure (or success)
Generic operation result class Has warning/error list, boolean status and arbitrary value.
setResult( $ok, $value=null)
Change operation result.
Base interface for representing page content.
Definition Content.php:37
Interface for all constraints that can prevent edits.
Represents the target of a wiki link.
This interface represents the authority associated with the current execution context,...
Definition Authority.php:37