Path: blob/master/src/applications/auth/xaction/PhabricatorAuthFactorProviderDuoHostnameTransaction.php
12256 views
<?php12final class PhabricatorAuthFactorProviderDuoHostnameTransaction3extends PhabricatorAuthFactorProviderTransactionType {45const TRANSACTIONTYPE = 'duo.hostname';67public function generateOldValue($object) {8$key = PhabricatorDuoAuthFactor::PROP_HOSTNAME;9return $object->getAuthFactorProviderProperty($key);10}1112public function applyInternalEffects($object, $value) {13$key = PhabricatorDuoAuthFactor::PROP_HOSTNAME;14$object->setAuthFactorProviderProperty($key, $value);15}1617public function getTitle() {18return pht(19'%s changed the hostname for this provider from %s to %s.',20$this->renderAuthor(),21$this->renderOldValue(),22$this->renderNewValue());23}2425public function validateTransactions($object, array $xactions) {26$errors = array();2728if (!$this->isDuoProvider($object)) {29return $errors;30}3132$old_value = $this->generateOldValue($object);33if ($this->isEmptyTextTransaction($old_value, $xactions)) {34$errors[] = $this->newRequiredError(35pht('Duo providers must have an API hostname.'));36}3738foreach ($xactions as $xaction) {39$new_value = $xaction->getNewValue();4041if (!strlen($new_value)) {42continue;43}4445if ($new_value === $old_value) {46continue;47}4849try {50PhabricatorDuoAuthFactor::requireDuoAPIHostname($new_value);51} catch (Exception $ex) {52$errors[] = $this->newInvalidError(53$ex->getMessage(),54$xaction);55continue;56}57}5859return $errors;60}6162}636465