diff options
| author | Marc Alexander <admin@m-a-styles.de> | 2016-07-20 20:25:01 +0200 |
|---|---|---|
| committer | Marc Alexander <admin@m-a-styles.de> | 2016-07-20 20:25:01 +0200 |
| commit | 486ffa85a25ffb5415915c83c9cba81a4df2b528 (patch) | |
| tree | 1e199082822c284c5aa3114cf0d549f5ee38b6aa /phpBB/phpbb/auth/provider/oauth/token_storage.php | |
| parent | d2ff12256c8505ea9aea0ead1db44016bb082864 (diff) | |
| parent | 33d1d19f9775242a260adbb33b0bfa4b5324dedf (diff) | |
| download | forums-486ffa85a25ffb5415915c83c9cba81a4df2b528.tar forums-486ffa85a25ffb5415915c83c9cba81a4df2b528.tar.gz forums-486ffa85a25ffb5415915c83c9cba81a4df2b528.tar.bz2 forums-486ffa85a25ffb5415915c83c9cba81a4df2b528.tar.xz forums-486ffa85a25ffb5415915c83c9cba81a4df2b528.zip | |
Merge pull request #4344 from Senky/ticket2/14586
[ticket/14586] Add OAuth1 support
Diffstat (limited to 'phpBB/phpbb/auth/provider/oauth/token_storage.php')
| -rw-r--r-- | phpBB/phpbb/auth/provider/oauth/token_storage.php | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/phpBB/phpbb/auth/provider/oauth/token_storage.php b/phpBB/phpbb/auth/provider/oauth/token_storage.php index e922342ef6..b0c2fd0d62 100644 --- a/phpBB/phpbb/auth/provider/oauth/token_storage.php +++ b/phpBB/phpbb/auth/provider/oauth/token_storage.php @@ -113,16 +113,30 @@ class token_storage implements TokenStorageInterface $this->cachedToken = $token; $data = array( - 'user_id' => (int) $this->user->data['user_id'], - 'provider' => $service, 'oauth_token' => $this->json_encode_token($token), - 'session_id' => $this->user->data['session_id'], ); - $sql = 'INSERT INTO ' . $this->oauth_token_table . ' - ' . $this->db->sql_build_array('INSERT', $data); + $sql = 'UPDATE ' . $this->oauth_token_table . ' + SET ' . $this->db->sql_build_array('UPDATE', $data) . ' + WHERE user_id = ' . (int) $this->user->data['user_id'] . ' + ' . ((int) $this->user->data['user_id'] === ANONYMOUS ? "AND session_id = '" . $this->db->sql_escape($this->user->data['session_id']) . "'" : '') . " + AND provider = '" . $this->db->sql_escape($service) . "'"; $this->db->sql_query($sql); + if (!$this->db->sql_affectedrows()) + { + $data = array( + 'user_id' => (int) $this->user->data['user_id'], + 'provider' => $service, + 'oauth_token' => $this->json_encode_token($token), + 'session_id' => $this->user->data['session_id'], + ); + + $sql = 'INSERT INTO ' . $this->oauth_token_table . $this->db->sql_build_array('INSERT', $data); + + $this->db->sql_query($sql); + } + return $this; } |
