Something went wrong. Try again.
@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.) hq.recaptime.dev/wiki/Phorge
phorge phabricator
Something went wrong. Try again.
3.5 kB · 133 lines
PHP
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134<?php
final class PhabricatorAuthFactorProviderEditEngine extends PhabricatorEditEngine {
private $providerFactor;
const ENGINECONST = 'auth.factor.provider';
public function isEngineConfigurable() { return false; }
public function getEngineName() { return pht('MFA Providers'); }
public function getSummaryHeader() { return pht('Edit MFA Providers'); }
public function getSummaryText() { return pht('This engine is used to edit MFA providers.'); }
public function getEngineApplicationClass() { return PhabricatorAuthApplication::class; }
public function setProviderFactor(PhabricatorAuthFactor $factor) { $this->providerFactor = $factor; return $this; }
public function getProviderFactor() { return $this->providerFactor; }
protected function newEditableObject() { $factor = $this->getProviderFactor(); if ($factor) { $provider = PhabricatorAuthFactorProvider::initializeNewProvider($factor); } else { $provider = new PhabricatorAuthFactorProvider(); }
return $provider; }
protected function newObjectQuery() { return new PhabricatorAuthFactorProviderQuery(); }
protected function getObjectCreateTitleText($object) { return pht('Create MFA Provider'); }
protected function getObjectCreateButtonText($object) { return pht('Create MFA Provider'); }
protected function getObjectEditTitleText($object) { return pht('Edit MFA Provider'); }
protected function getObjectEditShortText($object) { return $object->getObjectName(); }
protected function getObjectCreateShortText() { return pht('Create MFA Provider'); }
protected function getObjectName() { return pht('MFA Provider'); }
protected function getEditorURI() { return '/auth/mfa/edit/'; }
protected function getObjectCreateCancelURI($object) { return '/auth/mfa/'; }
protected function getObjectViewURI($object) { return $object->getURI(); }
protected function getCreateNewObjectPolicy() { return $this->getApplication()->getPolicy( AuthManageProvidersCapability::CAPABILITY); }
protected function buildCustomEditFields($object) { $factor = $object->getFactor(); $factor_name = $factor->getFactorName();
$status_map = PhabricatorAuthFactorProviderStatus::getMap();
$fields = array( id(new PhabricatorStaticEditField()) ->setKey('displayType') ->setLabel(pht('Factor Type')) ->setDescription(pht('Type of the MFA provider.')) ->setValue($factor_name), id(new PhabricatorTextEditField()) ->setKey('name') ->setTransactionType( PhabricatorAuthFactorProviderNameTransaction::TRANSACTIONTYPE) ->setLabel(pht('Name')) ->setDescription(pht('Display name for the MFA provider.')) ->setValue($object->getName()) ->setPlaceholder($factor_name), id(new PhabricatorSelectEditField()) ->setKey('status') ->setTransactionType( PhabricatorAuthFactorProviderStatusTransaction::TRANSACTIONTYPE) ->setLabel(pht('Status')) ->setDescription(pht('Status of the MFA provider.')) ->setValue($object->getStatus()) ->setOptions($status_map), );
$factor_fields = $factor->newEditEngineFields($this, $object); foreach ($factor_fields as $field) { $fields[] = $field; }
return $fields; }
}