[feature/oauth] Update storage implementation due to inteface change

PHPBB3-11673
This commit is contained in:
Joseph Warner 2013-09-02 15:25:38 -04:00
parent d04def0558
commit 6df2bd4fd3
2 changed files with 21 additions and 3 deletions

View file

@ -613,7 +613,7 @@ class phpbb_auth_provider_oauth extends phpbb_auth_provider_base
// Clear all tokens belonging to the user on this servce // Clear all tokens belonging to the user on this servce
$service_name = 'auth.provider.oauth.service.' . strtolower($link_data['oauth_service']); $service_name = 'auth.provider.oauth.service.' . strtolower($link_data['oauth_service']);
$storage = new phpbb_auth_provider_oauth_token_storage($this->db, $this->user, $service_name, $this->auth_provider_oauth_token_storage_table); $storage = new phpbb_auth_provider_oauth_token_storage($this->db, $this->user, $service_name, $this->auth_provider_oauth_token_storage_table);
$storage->clearToken(); $storage->clearToken($service_name);
return; return;
} }

View file

@ -145,13 +145,31 @@ class phpbb_auth_provider_oauth_token_storage implements TokenStorageInterface
/** /**
* {@inheritdoc} * {@inheritdoc}
*/ */
public function clearToken() public function clearToken($service)
{ {
$this->cachedToken = null; $this->cachedToken = null;
$sql = 'DELETE FROM ' . $this->auth_provider_oauth_table . ' $sql = 'DELETE FROM ' . $this->auth_provider_oauth_table . '
WHERE user_id = ' . $this->user->data['user_id'] . " WHERE user_id = ' . $this->user->data['user_id'] . "
AND provider = '" . $this->db->sql_escape($this->service_name) . "'"; AND provider = '" . $this->db->sql_escape($service) . "'";
if ($this->user->data['user_id'] === ANONYMOUS)
{
$sql .= " AND session_id = '" . $this->user->data['session_id'] . "'";
}
$this->db->sql_query($sql);
}
/**
* {@inheritdoc}
*/
public function clearAllTokens()
{
$this->cachedToken = null;
$sql = 'DELETE FROM ' . $this->auth_provider_oauth_table . '
WHERE user_id = ' . $this->user->data['user_id'];
if ($this->user->data['user_id'] === ANONYMOUS) if ($this->user->data['user_id'] === ANONYMOUS)
{ {