X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=lib%2Foauthstore.php;h=d7f9c9ff1b91b9959aafa8365612ce09fb15e022;hb=0876b60006da7f0ac2d6a4a01b50117a2ecca6b1;hp=3d0a358b26648f27142f99b2e78671fe3c67ae04;hpb=7bbb4ef7c78a916de04c046e90e721ce3a5c0096;p=quix0rs-gnu-social.git diff --git a/lib/oauthstore.php b/lib/oauthstore.php index 3d0a358b26..d7f9c9ff1b 100644 --- a/lib/oauthstore.php +++ b/lib/oauthstore.php @@ -24,7 +24,7 @@ require_once(INSTALLDIR.'/lib/omb.php'); class LaconicaOAuthDataStore extends OAuthDataStore { # We keep a record of who's contacted us - + function lookup_consumer($consumer_key) { $con = Consumer::staticGet('consumer_key', $consumer_key); if (!$con) { @@ -38,7 +38,7 @@ class LaconicaOAuthDataStore extends OAuthDataStore { } return new OAuthConsumer($con->consumer_key, ''); } - + function lookup_token($consumer, $token_type, $token_key) { $t = new Token(); $t->consumer_key = $consumer->key; @@ -50,7 +50,7 @@ class LaconicaOAuthDataStore extends OAuthDataStore { return NULL; } } - + function lookup_nonce($consumer, $token, $nonce, $timestamp) { $n = new Nonce(); $n->consumer_key = $consumer->key; @@ -65,7 +65,7 @@ class LaconicaOAuthDataStore extends OAuthDataStore { return FALSE; } } - + function new_request_token($consumer) { $t = new Token(); $t->consumer_key = $consumer->key; @@ -82,17 +82,19 @@ class LaconicaOAuthDataStore extends OAuthDataStore { } # defined in OAuthDataStore, but not implemented anywhere - + function fetch_request_token($consumer) { return $this->new_request_token($consumer); } - + function new_access_token($token, $consumer) { + common_debug('new_access_token("'.$token->key.'","'.$consumer->key.'")', __FILE__); $rt = new Token(); $rt->consumer_key = $consumer->key; $rt->tok = $token->key; $rt->type = 0; # request if ($rt->find(TRUE) && $rt->state == 1) { # authorized + common_debug('request token found.', __FILE__); $at = new Token(); $at->consumer_key = $consumer->key; $at->tok = common_good_rand(16); @@ -100,36 +102,42 @@ class LaconicaOAuthDataStore extends OAuthDataStore { $at->type = 1; # access $at->created = DB_DataObject_Cast::dateTime(); if (!$at->insert()) { + $e = $at->_lastError; + common_debug('access token "'.$at->tok.'" not inserted: "'.$e->message.'"', __FILE__); return NULL; } else { + common_debug('access token "'.$at->tok.'" inserted', __FILE__); # burn the old one $orig_rt = clone($rt); $rt->state = 2; # used if (!$rt->update($orig_rt)) { return NULL; - } + } + common_debug('request token "'.$rt->tok.'" updated', __FILE__); # Update subscription # XXX: mixing levels here $sub = Subscription::staticGet('token', $rt->tok); if (!$sub) { return NULL; } + common_debug('subscription for request token found', __FILE__); $orig_sub = clone($sub); $sub->token = $at->tok; $sub->secret = $at->secret; if (!$sub->update($orig_sub)) { return NULL; } else { + common_debug('subscription updated to use access token', __FILE__); return new OAuthToken($at->tok, $at->secret); - } + } } } else { return NULL; } } - + # defined in OAuthDataStore, but not implemented anywhere - + function fetch_access_token($consumer) { return $this->new_access_token($consumer); }