mirror of
https://we.phorge.it/source/phorge.git
synced 2025-03-25 10:40:16 +01:00
Convert OAuth1 handshake tokens to new modular temporary tokens
Summary: Ref T10603. Swap these over and give them nice UI strings. Test Plan: - Refreshed a Twitter OAuth link. - Unlinked and re-linked a Twitter account. - Viewed the new type in {nav Config > Temporary Tokens}. Reviewers: chad Reviewed By: chad Maniphest Tasks: T10603 Differential Revision: https://secure.phabricator.com/D15480
This commit is contained in:
parent
33a95d44bd
commit
6ef4747e9d
3 changed files with 26 additions and 4 deletions
|
@ -2672,6 +2672,7 @@ phutil_register_library_map(array(
|
|||
'PhabricatorNotificationsApplication' => 'applications/notification/application/PhabricatorNotificationsApplication.php',
|
||||
'PhabricatorNuanceApplication' => 'applications/nuance/application/PhabricatorNuanceApplication.php',
|
||||
'PhabricatorOAuth1AuthProvider' => 'applications/auth/provider/PhabricatorOAuth1AuthProvider.php',
|
||||
'PhabricatorOAuth1SecretTemporaryTokenType' => 'applications/auth/provider/PhabricatorOAuth1SecretTemporaryTokenType.php',
|
||||
'PhabricatorOAuth2AuthProvider' => 'applications/auth/provider/PhabricatorOAuth2AuthProvider.php',
|
||||
'PhabricatorOAuthAuthProvider' => 'applications/auth/provider/PhabricatorOAuthAuthProvider.php',
|
||||
'PhabricatorOAuthClientAuthorization' => 'applications/oauthserver/storage/PhabricatorOAuthClientAuthorization.php',
|
||||
|
@ -7122,6 +7123,7 @@ phutil_register_library_map(array(
|
|||
'PhabricatorNotificationsApplication' => 'PhabricatorApplication',
|
||||
'PhabricatorNuanceApplication' => 'PhabricatorApplication',
|
||||
'PhabricatorOAuth1AuthProvider' => 'PhabricatorOAuthAuthProvider',
|
||||
'PhabricatorOAuth1SecretTemporaryTokenType' => 'PhabricatorAuthTemporaryTokenType',
|
||||
'PhabricatorOAuth2AuthProvider' => 'PhabricatorOAuthAuthProvider',
|
||||
'PhabricatorOAuthAuthProvider' => 'PhabricatorAuthProvider',
|
||||
'PhabricatorOAuthClientAuthorization' => array(
|
||||
|
|
|
@ -9,8 +9,6 @@ abstract class PhabricatorOAuth1AuthProvider
|
|||
const PROPERTY_CONSUMER_SECRET = 'oauth1:consumer:secret';
|
||||
const PROPERTY_PRIVATE_KEY = 'oauth1:private:key';
|
||||
|
||||
const TEMPORARY_TOKEN_TYPE = 'oauth1:request:secret';
|
||||
|
||||
protected function getIDKey() {
|
||||
return self::PROPERTY_CONSUMER_KEY;
|
||||
}
|
||||
|
@ -215,8 +213,9 @@ abstract class PhabricatorOAuth1AuthProvider
|
|||
|
||||
|
||||
private function saveHandshakeTokenSecret($client_code, $secret) {
|
||||
$secret_type = PhabricatorOAuth1SecretTemporaryTokenType::TOKENTYPE;
|
||||
$key = $this->getHandshakeTokenKeyFromClientCode($client_code);
|
||||
$type = $this->getTemporaryTokenType(self::TEMPORARY_TOKEN_TYPE);
|
||||
$type = $this->getTemporaryTokenType($secret_type);
|
||||
|
||||
// Wipe out an existing token, if one exists.
|
||||
$token = id(new PhabricatorAuthTemporaryTokenQuery())
|
||||
|
@ -238,8 +237,9 @@ abstract class PhabricatorOAuth1AuthProvider
|
|||
}
|
||||
|
||||
private function loadHandshakeTokenSecret($client_code) {
|
||||
$secret_type = PhabricatorOAuth1SecretTemporaryTokenType::TOKENTYPE;
|
||||
$key = $this->getHandshakeTokenKeyFromClientCode($client_code);
|
||||
$type = $this->getTemporaryTokenType(self::TEMPORARY_TOKEN_TYPE);
|
||||
$type = $this->getTemporaryTokenType($secret_type);
|
||||
|
||||
$token = id(new PhabricatorAuthTemporaryTokenQuery())
|
||||
->setViewer(PhabricatorUser::getOmnipotentUser())
|
||||
|
@ -263,6 +263,9 @@ abstract class PhabricatorOAuth1AuthProvider
|
|||
// others' toes if a user starts Mediawiki and Bitbucket auth at the
|
||||
// same time.
|
||||
|
||||
// TODO: This isn't really a proper use of the table and should get
|
||||
// cleaned up some day: the type should be constant.
|
||||
|
||||
return $core_type.':'.$this->getProviderConfig()->getID();
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,17 @@
|
|||
<?php
|
||||
|
||||
final class PhabricatorOAuth1SecretTemporaryTokenType
|
||||
extends PhabricatorAuthTemporaryTokenType {
|
||||
|
||||
const TOKENTYPE = 'oauth1:request:secret';
|
||||
|
||||
public function getTokenTypeDisplayName() {
|
||||
return pht('OAuth1 Handshake Secret');
|
||||
}
|
||||
|
||||
public function getTokenReadableTypeName(
|
||||
PhabricatorAuthTemporaryToken $token) {
|
||||
return pht('OAuth1 Handshake Token');
|
||||
}
|
||||
|
||||
}
|
Loading…
Add table
Reference in a new issue