MediaWiki  master
AutoSummaryMissingSummaryConstraint.php
Go to the documentation of this file.
1 <?php
22 
23 use Content;
24 use StatusValue;
25 
42 
44  private $userSummary;
45 
47  private $autoSummary;
48 
50  private $allowBlankSummary;
51 
53  private $newContent;
54 
56  private $originalContent;
57 
59  private $result;
60 
68  public function __construct(
69  string $userSummary,
70  string $autoSummary,
71  bool $allowBlankSummary,
72  Content $newContent,
73  Content $originalContent
74  ) {
75  $this->userSummary = $userSummary;
76  $this->autoSummary = $autoSummary;
77  $this->allowBlankSummary = $allowBlankSummary;
78  $this->newContent = $newContent;
79  $this->originalContent = $originalContent;
80  }
81 
82  public function checkConstraint(): string {
83  if (
84  !$this->allowBlankSummary &&
85  !$this->newContent->equals( $this->originalContent ) &&
86  !$this->newContent->isRedirect() &&
87  md5( $this->userSummary ) == $this->autoSummary
88  ) {
89  // TODO this was == in EditPage, can it be === ?
90  $this->result = self::CONSTRAINT_FAILED;
91  } else {
92  $this->result = self::CONSTRAINT_PASSED;
93  }
94  return $this->result;
95  }
96 
97  public function getLegacyStatus(): StatusValue {
98  $statusValue = StatusValue::newGood();
99  if ( $this->result === self::CONSTRAINT_FAILED ) {
100  $statusValue->fatal( 'missingsummary' );
101  $statusValue->value = self::AS_SUMMARY_NEEDED;
102  }
103  return $statusValue;
104  }
105 
106 }
if(!defined('MW_SETUP_CALLBACK'))
The persistent session ID (if any) loaded at startup.
Definition: WebStart.php:82
For an edit to an existing page but not with a new section, do not allow the user to post with a summ...
__construct(string $userSummary, string $autoSummary, bool $allowBlankSummary, Content $newContent, Content $originalContent)
Generic operation result class Has warning/error list, boolean status and arbitrary value.
Definition: StatusValue.php:46
fatal( $message,... $parameters)
Add an error and set OK to false, indicating that the operation as a whole was fatal.
Base interface for representing page content.
Definition: Content.php:34
Interface for all constraints that can prevent edits.