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 · 127 lines
PHP
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128<?php
final class PhabricatorAuthFactorProviderViewController extends PhabricatorAuthFactorProviderController {
public function handleRequest(AphrontRequest $request) { $viewer = $this->getViewer();
$this->requireApplicationCapability( AuthManageProvidersCapability::CAPABILITY);
$provider = id(new PhabricatorAuthFactorProviderQuery()) ->setViewer($viewer) ->withIDs(array($request->getURIData('id'))) ->executeOne(); if (!$provider) { return new Aphront404Response(); }
$crumbs = $this->buildApplicationCrumbs() ->addTextCrumb($provider->getObjectName()) ->setBorder(true);
$header = $this->buildHeaderView($provider); $properties = $this->buildPropertiesView($provider); $curtain = $this->buildCurtain($provider);
$timeline = $this->buildTransactionTimeline( $provider, new PhabricatorAuthFactorProviderTransactionQuery()); $timeline->setShouldTerminate(true);
$view = id(new PHUITwoColumnView()) ->setHeader($header) ->setCurtain($curtain) ->setMainColumn( array( $timeline, )) ->addPropertySection(pht('Details'), $properties);
return $this->newPage() ->setTitle($provider->getDisplayName()) ->setCrumbs($crumbs) ->setPageObjectPHIDs( array( $provider->getPHID(), )) ->appendChild($view); }
private function buildHeaderView(PhabricatorAuthFactorProvider $provider) { $viewer = $this->getViewer();
$view = id(new PHUIHeaderView()) ->setViewer($viewer) ->setHeader($provider->getDisplayName()) ->setPolicyObject($provider);
$status = $provider->newStatus();
$header_icon = $status->getStatusHeaderIcon(); $header_color = $status->getStatusHeaderColor(); $header_name = $status->getName(); if ($header_icon !== null) { $view->setStatus($header_icon, $header_color, $header_name); }
return $view; }
private function buildPropertiesView( PhabricatorAuthFactorProvider $provider) { $viewer = $this->getViewer();
$view = id(new PHUIPropertyListView()) ->setViewer($viewer);
$view->addProperty( pht('Factor Type'), $provider->getFactor()->getFactorName());
$custom_enroll = $provider->getEnrollMessage(); if (phutil_nonempty_string($custom_enroll)) { $view->addSectionHeader( pht('Custom Enroll Message'), PHUIPropertyListView::ICON_SUMMARY); $view->addTextContent( new PHUIRemarkupView($viewer, $custom_enroll)); }
return $view; }
private function buildCurtain(PhabricatorAuthFactorProvider $provider) { $viewer = $this->getViewer(); $id = $provider->getID();
$can_edit = PhabricatorPolicyFilter::hasCapability( $viewer, $provider, PhabricatorPolicyCapability::CAN_EDIT);
$curtain = $this->newCurtainView($provider);
$curtain->addAction( id(new PhabricatorActionView()) ->setName(pht('Edit MFA Provider')) ->setIcon('fa-pencil') ->setHref($this->getApplicationURI("mfa/edit/{$id}/")) ->setDisabled(!$can_edit) ->setWorkflow(!$can_edit));
$curtain->addAction( id(new PhabricatorActionView()) ->setName(pht('Customize Enroll Message')) ->setIcon('fa-commenting-o') ->setHref($this->getApplicationURI("mfa/message/{$id}/")) ->setDisabled(!$can_edit) ->setWorkflow(true));
return $curtain; }
}