From a12a6d5c7d1e4a89cf2c8bfbcc7767ba1b929c8e Mon Sep 17 00:00:00 2001 From: epriestley Date: Sun, 16 Jun 2013 10:16:14 -0700 Subject: [PATCH] Add Disqus OAuth to new flows Summary: Ref T1536. Adds Disqus as a Provider. Test Plan: Registered and logged in with Disqus. Reviewers: btrahan Reviewed By: btrahan CC: aran Maniphest Tasks: T1536 Differential Revision: https://secure.phabricator.com/D6165 --- src/__phutil_library_map__.php | 2 + .../auth/provider/PhabricatorAuthProvider.php | 9 +++- .../provider/PhabricatorAuthProviderOAuth.php | 14 ++++-- .../PhabricatorAuthProviderOAuthDisqus.php | 47 +++++++++++++++++++ .../PhabricatorAuthProviderPassword.php | 3 +- 5 files changed, 68 insertions(+), 7 deletions(-) create mode 100644 src/applications/auth/provider/PhabricatorAuthProviderOAuthDisqus.php diff --git a/src/__phutil_library_map__.php b/src/__phutil_library_map__.php index aa62f7d0f3..a989cd8f63 100644 --- a/src/__phutil_library_map__.php +++ b/src/__phutil_library_map__.php @@ -818,6 +818,7 @@ phutil_register_library_map(array( 'PhabricatorAuthLoginController' => 'applications/auth/controller/PhabricatorAuthLoginController.php', 'PhabricatorAuthProvider' => 'applications/auth/provider/PhabricatorAuthProvider.php', 'PhabricatorAuthProviderOAuth' => 'applications/auth/provider/PhabricatorAuthProviderOAuth.php', + 'PhabricatorAuthProviderOAuthDisqus' => 'applications/auth/provider/PhabricatorAuthProviderOAuthDisqus.php', 'PhabricatorAuthProviderOAuthFacebook' => 'applications/auth/provider/PhabricatorAuthProviderOAuthFacebook.php', 'PhabricatorAuthProviderPassword' => 'applications/auth/provider/PhabricatorAuthProviderPassword.php', 'PhabricatorAuthRegisterController' => 'applications/auth/controller/PhabricatorAuthRegisterController.php', @@ -2678,6 +2679,7 @@ phutil_register_library_map(array( 'PhabricatorAuthController' => 'PhabricatorController', 'PhabricatorAuthLoginController' => 'PhabricatorAuthController', 'PhabricatorAuthProviderOAuth' => 'PhabricatorAuthProvider', + 'PhabricatorAuthProviderOAuthDisqus' => 'PhabricatorAuthProviderOAuth', 'PhabricatorAuthProviderOAuthFacebook' => 'PhabricatorAuthProviderOAuth', 'PhabricatorAuthProviderPassword' => 'PhabricatorAuthProvider', 'PhabricatorAuthRegisterController' => 'PhabricatorAuthController', diff --git a/src/applications/auth/provider/PhabricatorAuthProvider.php b/src/applications/auth/provider/PhabricatorAuthProvider.php index c9cccfe4d7..9023413366 100644 --- a/src/applications/auth/provider/PhabricatorAuthProvider.php +++ b/src/applications/auth/provider/PhabricatorAuthProvider.php @@ -54,7 +54,12 @@ abstract class PhabricatorAuthProvider { abstract public function getProviderName(); abstract public function getAdapter(); - abstract public function isEnabled(); + + public function isEnabled() { + // TODO: Remove once we switch to the new auth stuff. + return false; + } + abstract public function shouldAllowLogin(); abstract public function shouldAllowRegistration(); abstract public function shouldAllowAccountLink(); @@ -74,7 +79,7 @@ abstract class PhabricatorAuthProvider { return; } - protected function willRegisterAccount(PhabricatorExternalAccount $account) { + public function willRegisterAccount(PhabricatorExternalAccount $account) { return; } diff --git a/src/applications/auth/provider/PhabricatorAuthProviderOAuth.php b/src/applications/auth/provider/PhabricatorAuthProviderOAuth.php index 0ee70aa8a9..9474716c06 100644 --- a/src/applications/auth/provider/PhabricatorAuthProviderOAuth.php +++ b/src/applications/auth/provider/PhabricatorAuthProviderOAuth.php @@ -18,12 +18,20 @@ abstract class PhabricatorAuthProviderOAuth extends PhabricatorAuthProvider { } public function isEnabled() { - return $this->getOAuthClientID() && $this->getOAuthClientSecret(); + return parent::isEnabled() && + $this->getOAuthClientID() && + $this->getOAuthClientSecret(); } protected function configureAdapter(PhutilAuthAdapterOAuth $adapter) { - $adapter->setClientID($this->getOAuthClientID()); - $adapter->setClientSecret($this->getOAuthClientSecret()); + if ($this->getOAuthClientID()) { + $adapter->setClientID($this->getOAuthClientID()); + } + + if ($this->getOAuthClientSecret()) { + $adapter->setClientSecret($this->getOAuthClientSecret()); + } + $adapter->setRedirectURI($this->getLoginURI()); return $adapter; } diff --git a/src/applications/auth/provider/PhabricatorAuthProviderOAuthDisqus.php b/src/applications/auth/provider/PhabricatorAuthProviderOAuthDisqus.php new file mode 100644 index 0000000000..1905b3477d --- /dev/null +++ b/src/applications/auth/provider/PhabricatorAuthProviderOAuthDisqus.php @@ -0,0 +1,47 @@ +