[ Index ] |
PHP Cross Reference of Phabricator |
[Summary view] [Print] [Text view]
1 <?php 2 3 $config_map = array( 4 'PhabricatorLDAPAuthProvider' => array( 5 'enabled' => 'ldap.auth-enabled', 6 'registration' => true, 7 'type' => 'ldap', 8 'domain' => 'self', 9 ), 10 'PhabricatorAuthProviderOAuthDisqus' => array( 11 'enabled' => 'disqus.auth-enabled', 12 'registration' => 'disqus.registration-enabled', 13 'permanent' => 'disqus.auth-permanent', 14 'oauth.id' => 'disqus.application-id', 15 'oauth.secret' => 'disqus.application-secret', 16 'type' => 'disqus', 17 'domain' => 'disqus.com', 18 ), 19 'PhabricatorFacebookAuthProvider' => array( 20 'enabled' => 'facebook.auth-enabled', 21 'registration' => 'facebook.registration-enabled', 22 'permanent' => 'facebook.auth-permanent', 23 'oauth.id' => 'facebook.application-id', 24 'oauth.secret' => 'facebook.application-secret', 25 'type' => 'facebook', 26 'domain' => 'facebook.com', 27 ), 28 'PhabricatorAuthProviderOAuthGitHub' => array( 29 'enabled' => 'github.auth-enabled', 30 'registration' => 'github.registration-enabled', 31 'permanent' => 'github.auth-permanent', 32 'oauth.id' => 'github.application-id', 33 'oauth.secret' => 'github.application-secret', 34 'type' => 'github', 35 'domain' => 'github.com', 36 ), 37 'PhabricatorAuthProviderOAuthGoogle' => array( 38 'enabled' => 'google.auth-enabled', 39 'registration' => 'google.registration-enabled', 40 'permanent' => 'google.auth-permanent', 41 'oauth.id' => 'google.application-id', 42 'oauth.secret' => 'google.application-secret', 43 'type' => 'google', 44 'domain' => 'google.com', 45 ), 46 'PhabricatorPasswordAuthProvider' => array( 47 'enabled' => 'auth.password-auth-enabled', 48 'enabled-default' => false, 49 'registration' => false, 50 'type' => 'password', 51 'domain' => 'self', 52 ), 53 ); 54 55 foreach ($config_map as $provider_class => $spec) { 56 $enabled_key = idx($spec, 'enabled'); 57 $enabled_default = idx($spec, 'enabled-default', false); 58 $enabled = PhabricatorEnv::getEnvConfigIfExists( 59 $enabled_key, 60 $enabled_default); 61 62 if (!$enabled) { 63 echo pht("Skipping %s (not enabled).\n", $provider_class); 64 // This provider was not previously enabled, so we can skip migrating it. 65 continue; 66 } else { 67 echo pht("Migrating %s...\n", $provider_class); 68 } 69 70 $registration_key = idx($spec, 'registration'); 71 if ($registration_key === true) { 72 $registration = 1; 73 } else if ($registration_key === false) { 74 $registration = 0; 75 } else { 76 $registration = (int)PhabricatorEnv::getEnvConfigIfExists( 77 $registration_key, 78 true); 79 } 80 81 $unlink_key = idx($spec, 'permanent'); 82 if (!$unlink_key) { 83 $unlink = 1; 84 } else { 85 $unlink = (int)(!PhabricatorEnv::getEnvConfigIfExists($unlink_key)); 86 } 87 88 $config = id(new PhabricatorAuthProviderConfig()) 89 ->setIsEnabled(1) 90 ->setShouldAllowLogin(1) 91 ->setShouldAllowRegistration($registration) 92 ->setShouldAllowLink(1) 93 ->setShouldAllowUnlink($unlink) 94 ->setProviderType(idx($spec, 'type')) 95 ->setProviderDomain(idx($spec, 'domain')) 96 ->setProviderClass($provider_class); 97 98 if (isset($spec['oauth.id'])) { 99 $config->setProperty( 100 PhabricatorAuthProviderOAuth::PROPERTY_APP_ID, 101 PhabricatorEnv::getEnvConfigIfExists(idx($spec, 'oauth.id'))); 102 $config->setProperty( 103 PhabricatorAuthProviderOAuth::PROPERTY_APP_SECRET, 104 PhabricatorEnv::getEnvConfigIfExists(idx($spec, 'oauth.secret'))); 105 } 106 107 switch ($provider_class) { 108 case 'PhabricatorFacebookAuthProvider': 109 $config->setProperty( 110 PhabricatorFacebookAuthProvider::KEY_REQUIRE_SECURE, 111 (int)PhabricatorEnv::getEnvConfigIfExists( 112 'facebook.require-https-auth')); 113 break; 114 case 'PhabricatorLDAPAuthProvider': 115 116 $ldap_map = array( 117 PhabricatorLDAPAuthProvider::KEY_HOSTNAME 118 => 'ldap.hostname', 119 PhabricatorLDAPAuthProvider::KEY_PORT 120 => 'ldap.port', 121 PhabricatorLDAPAuthProvider::KEY_DISTINGUISHED_NAME 122 => 'ldap.base_dn', 123 PhabricatorLDAPAuthProvider::KEY_SEARCH_ATTRIBUTES 124 => 'ldap.search_attribute', 125 PhabricatorLDAPAuthProvider::KEY_USERNAME_ATTRIBUTE 126 => 'ldap.username-attribute', 127 PhabricatorLDAPAuthProvider::KEY_REALNAME_ATTRIBUTES 128 => 'ldap.real_name_attributes', 129 PhabricatorLDAPAuthProvider::KEY_VERSION 130 => 'ldap.version', 131 PhabricatorLDAPAuthProvider::KEY_REFERRALS 132 => 'ldap.referrals', 133 PhabricatorLDAPAuthProvider::KEY_START_TLS 134 => 'ldap.start-tls', 135 PhabricatorLDAPAuthProvider::KEY_ANONYMOUS_USERNAME 136 => 'ldap.anonymous-user-name', 137 PhabricatorLDAPAuthProvider::KEY_ANONYMOUS_PASSWORD 138 => 'ldap.anonymous-user-password', 139 // Update the old "search first" setting to the newer but similar 140 // "always search" setting. 141 PhabricatorLDAPAuthProvider::KEY_ALWAYS_SEARCH 142 => 'ldap.search-first', 143 PhabricatorLDAPAuthProvider::KEY_ACTIVEDIRECTORY_DOMAIN 144 => 'ldap.activedirectory_domain', 145 ); 146 147 $defaults = array( 148 'ldap.version' => 3, 149 'ldap.port' => 389, 150 ); 151 152 foreach ($ldap_map as $pkey => $ckey) { 153 $default = idx($defaults, $ckey); 154 $config->setProperty( 155 $pkey, 156 PhabricatorEnv::getEnvConfigIfExists($ckey, $default)); 157 } 158 break; 159 } 160 161 $config->save(); 162 } 163 164 echo "Done.\n";
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Sun Nov 30 09:20:46 2014 | Cross-referenced by PHPXref 0.7.1 |