@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
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at upstream/main 96 lines 2.9 kB view raw
1<?php 2 3final class PhabricatorAuthNewController 4 extends PhabricatorAuthProviderConfigController { 5 6 public function handleRequest(AphrontRequest $request) { 7 $this->requireApplicationCapability( 8 AuthManageProvidersCapability::CAPABILITY); 9 10 $viewer = $this->getViewer(); 11 $cancel_uri = $this->getApplicationURI(); 12 $locked_config_key = 'auth.lock-config'; 13 $is_locked = PhabricatorEnv::getEnvConfig($locked_config_key); 14 15 if ($is_locked) { 16 $message = pht( 17 'Authentication provider configuration is locked, and can not be '. 18 'changed without being unlocked. See the configuration setting %s '. 19 'for details.', 20 phutil_tag( 21 'a', 22 array( 23 'href' => '/config/edit/'.$locked_config_key, 24 ), 25 $locked_config_key)); 26 27 return $this->newDialog() 28 ->setUser($viewer) 29 ->setTitle(pht('Authentication Config Locked')) 30 ->appendChild($message) 31 ->addCancelButton($cancel_uri); 32 } 33 34 $providers = PhabricatorAuthProvider::getAllBaseProviders(); 35 36 $configured = PhabricatorAuthProvider::getAllProviders(); 37 $configured_classes = array(); 38 foreach ($configured as $configured_provider) { 39 $configured_classes[get_class($configured_provider)] = true; 40 } 41 42 // Sort providers by login order, and move disabled providers to the 43 // bottom. 44 $providers = msort($providers, 'getLoginOrder'); 45 $providers = array_diff_key($providers, $configured_classes) + $providers; 46 47 $menu = id(new PHUIObjectItemListView()) 48 ->setViewer($viewer) 49 ->setBig(true) 50 ->setFlush(true); 51 52 foreach ($providers as $provider_key => $provider) { 53 $provider_class = get_class($provider); 54 55 $provider_uri = id(new PhutilURI('/config/edit/')) 56 ->replaceQueryParam('provider', $provider_class); 57 $provider_uri = $this->getApplicationURI($provider_uri); 58 59 $already_exists = isset($configured_classes[get_class($provider)]); 60 61 $item = id(new PHUIObjectItemView()) 62 ->setHeader($provider->getNameForCreate()) 63 ->setImageIcon($provider->newIconView()) 64 ->setHasSpriteImage(true) 65 ->addAttribute($provider->getDescriptionForCreate()); 66 67 if (!$already_exists) { 68 $item 69 ->setHref($provider_uri) 70 ->setClickable(true); 71 } else { 72 $item->setDisabled(true); 73 } 74 75 if ($already_exists) { 76 $messages = array(); 77 $messages[] = pht('You already have a provider of this type.'); 78 79 $info = id(new PHUIInfoView()) 80 ->setSeverity(PHUIInfoView::SEVERITY_WARNING) 81 ->setErrors($messages); 82 83 $item->appendChild($info); 84 } 85 86 $menu->addItem($item); 87 } 88 89 return $this->newDialog() 90 ->setTitle(pht('Add Auth Provider')) 91 ->setWidth(AphrontDialogView::WIDTH_FORM) 92 ->appendChild($menu) 93 ->addCancelButton($cancel_uri); 94 } 95 96}