Page MenuHomestyx hydra

No OneTemporary

diff --git a/src/applications/auth/controller/config/PhabricatorAuthProviderViewController.php b/src/applications/auth/controller/config/PhabricatorAuthProviderViewController.php
index 532744001c..abf9bf8eff 100644
--- a/src/applications/auth/controller/config/PhabricatorAuthProviderViewController.php
+++ b/src/applications/auth/controller/config/PhabricatorAuthProviderViewController.php
@@ -1,119 +1,199 @@
<?php
final class PhabricatorAuthProviderViewController
extends PhabricatorAuthProviderConfigController {
public function handleRequest(AphrontRequest $request) {
$this->requireApplicationCapability(
AuthManageProvidersCapability::CAPABILITY);
$viewer = $this->getViewer();
$id = $request->getURIData('id');
$config = id(new PhabricatorAuthProviderConfigQuery())
->setViewer($viewer)
->requireCapabilities(
array(
PhabricatorPolicyCapability::CAN_VIEW,
PhabricatorPolicyCapability::CAN_EDIT,
))
->withIDs(array($id))
->executeOne();
if (!$config) {
return new Aphront404Response();
}
$header = $this->buildHeaderView($config);
$properties = $this->buildPropertiesView($config);
$curtain = $this->buildCurtain($config);
$timeline = $this->buildTransactionTimeline(
$config,
new PhabricatorAuthProviderConfigTransactionQuery());
$timeline->setShouldTerminate(true);
$view = id(new PHUITwoColumnView())
->setHeader($header)
->setCurtain($curtain)
->addPropertySection(pht('Details'), $properties)
->setMainColumn($timeline);
$crumbs = $this->buildApplicationCrumbs()
->addTextCrumb($config->getObjectName())
->setBorder(true);
return $this->newPage()
->setTitle(pht('Auth Provider: %s', $config->getDisplayName()))
->setCrumbs($crumbs)
->appendChild($view);
}
private function buildHeaderView(PhabricatorAuthProviderConfig $config) {
$viewer = $this->getViewer();
$view = id(new PHUIHeaderView())
->setViewer($viewer)
->setHeader($config->getDisplayName());
if ($config->getIsEnabled()) {
$view->setStatus('fa-check', 'bluegrey', pht('Enabled'));
} else {
$view->setStatus('fa-ban', 'red', pht('Disabled'));
}
return $view;
}
private function buildCurtain(PhabricatorAuthProviderConfig $config) {
$viewer = $this->getViewer();
$id = $config->getID();
$can_edit = PhabricatorPolicyFilter::hasCapability(
$viewer,
$config,
PhabricatorPolicyCapability::CAN_EDIT);
$curtain = $this->newCurtainView($config);
$curtain->addAction(
id(new PhabricatorActionView())
->setName(pht('Edit Auth Provider'))
->setIcon('fa-pencil')
->setHref($this->getApplicationURI("config/edit/{$id}/"))
->setDisabled(!$can_edit)
->setWorkflow(!$can_edit));
if ($config->getIsEnabled()) {
$disable_uri = $this->getApplicationURI('config/disable/'.$id.'/');
$disable_icon = 'fa-ban';
$disable_text = pht('Disable Provider');
} else {
$disable_uri = $this->getApplicationURI('config/enable/'.$id.'/');
$disable_icon = 'fa-check';
$disable_text = pht('Enable Provider');
}
$curtain->addAction(
id(new PhabricatorActionView())
->setName($disable_text)
->setIcon($disable_icon)
->setHref($disable_uri)
->setDisabled(!$can_edit)
->setWorkflow(true));
return $curtain;
}
private function buildPropertiesView(PhabricatorAuthProviderConfig $config) {
$viewer = $this->getViewer();
$view = id(new PHUIPropertyListView())
->setViewer($viewer);
$view->addProperty(
pht('Provider Type'),
$config->getProvider()->getProviderName());
+ $status = $this->buildStatus($config);
+ $view->addProperty(pht('Status'), $status);
+
+ return $view;
+ }
+
+ private function buildStatus(PhabricatorAuthProviderConfig $config) {
+ $viewer = $this->getViewer();
+ $view = id(new PHUIStatusListView())
+ ->setViewer($viewer);
+
+ $icon_enabled = PHUIStatusItemView::ICON_ACCEPT;
+ $icon_disabled = PHUIStatusItemView::ICON_REJECT;
+
+ $icon_map = array(
+ true => $icon_enabled,
+ false => $icon_disabled,
+ );
+
+ $color_map = array(
+ true => 'green',
+ false => 'red',
+ );
+
+ $provider = $config->getProvider();
+
+ $view->addItem(
+ id(new PHUIStatusItemView())
+ ->setIcon(
+ $icon_map[$config->getIsEnabled()],
+ $color_map[$config->getIsEnabled()])
+ ->setTarget(pht('Provider Enabled')));
+
+ $view->addItem(
+ id(new PHUIStatusItemView())
+ ->setIcon(
+ $icon_map[$config->getShouldAllowLogin()],
+ $color_map[$config->getShouldAllowLogin()])
+ ->setTarget(pht('Allow Logins')));
+
+ $view->addItem(
+ id(new PHUIStatusItemView())
+ ->setIcon(
+ $icon_map[$config->getShouldAllowRegistration()],
+ $color_map[$config->getShouldAllowRegistration()])
+ ->setTarget(pht('Allow Registration')));
+
+ $view->addItem(
+ id(new PHUIStatusItemView())
+ ->setIcon(
+ $icon_map[$config->getShouldAllowLink()],
+ $color_map[$config->getShouldAllowLink()])
+ ->setTarget(pht('Allow Account Linking')));
+
+ $view->addItem(
+ id(new PHUIStatusItemView())
+ ->setIcon(
+ $icon_map[$config->getShouldAllowUnlink()],
+ $color_map[$config->getShouldAllowUnlink()])
+ ->setTarget(pht('Allow Account Unlinking')));
+
+ if ($provider->shouldAllowEmailTrustConfiguration()) {
+ $view->addItem(
+ id(new PHUIStatusItemView())
+ ->setIcon(
+ $icon_map[$config->getShouldTrustEmails()],
+ $color_map[$config->getShouldTrustEmails()])
+ ->setTarget(pht('Trust Email Addresses')));
+ }
+
+ if ($provider->supportsAutoLogin()) {
+ $view->addItem(
+ id(new PHUIStatusItemView())
+ ->setIcon(
+ $icon_map[$config->getShouldAutoLogin()],
+ $color_map[$config->getShouldAutoLogin()])
+ ->setTarget(pht('Allow Auto Login')));
+ }
+
return $view;
}
+
}

File Metadata

Mime Type
text/x-diff
Expires
Wed, Jun 11, 12:58 AM (1 h, 31 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
141541
Default Alt Text
(6 KB)

Event Timeline