Correct a parameter order swap in "diffusion.historyquery" for Mercurial
[phabricator.git] / src / applications / auth / xaction / PhabricatorAuthContactNumberStatusTransaction.php
blob5dab6fe8c0371f66fef1b0500681f9af069ce87a
1 <?php
3 final class PhabricatorAuthContactNumberStatusTransaction
4 extends PhabricatorAuthContactNumberTransactionType {
6 const TRANSACTIONTYPE = 'status';
8 public function generateOldValue($object) {
9 return $object->getStatus();
12 public function applyInternalEffects($object, $value) {
13 $object->setStatus($value);
16 public function getTitle() {
17 $new = $this->getNewValue();
19 if ($new === PhabricatorAuthContactNumber::STATUS_DISABLED) {
20 return pht(
21 '%s disabled this contact number.',
22 $this->renderAuthor());
23 } else {
24 return pht(
25 '%s enabled this contact number.',
26 $this->renderAuthor());
30 public function validateTransactions($object, array $xactions) {
31 $errors = array();
33 $map = PhabricatorAuthContactNumber::getStatusNameMap();
35 foreach ($xactions as $xaction) {
36 $new_value = $xaction->getNewValue();
38 if (!isset($map[$new_value])) {
39 $errors[] = $this->newInvalidError(
40 pht(
41 'Status ("%s") is not a valid contact number status. Valid '.
42 'status constants are: %s.',
43 $new_value,
44 implode(', ', array_keys($map))),
45 $xaction);
46 continue;
49 $mfa_error = $this->newContactNumberMFAError($object, $xaction);
50 if ($mfa_error) {
51 $errors[] = $mfa_error;
52 continue;
55 // NOTE: Enabling a contact number may cause us to collide with another
56 // active contact number. However, there might also be a transaction in
57 // this group that changes the number itself. Since we can't easily
58 // predict if we'll collide or not, just let the duplicate key logic
59 // handle it when we do.
62 return $errors;