diff options
Diffstat (limited to 'phpBB/phpbb/auth/provider/oauth/oauth.php')
| -rw-r--r-- | phpBB/phpbb/auth/provider/oauth/oauth.php | 9 | 
1 files changed, 6 insertions, 3 deletions
diff --git a/phpBB/phpbb/auth/provider/oauth/oauth.php b/phpBB/phpbb/auth/provider/oauth/oauth.php index c0ce3f1fba..be0fbf5831 100644 --- a/phpBB/phpbb/auth/provider/oauth/oauth.php +++ b/phpBB/phpbb/auth/provider/oauth/oauth.php @@ -553,13 +553,13 @@ class oauth extends \phpbb\auth\provider\base  	/**  	* {@inheritdoc}  	*/ -	public function get_auth_link_data() +	public function get_auth_link_data($user_id = 0)  	{  		$block_vars = array();  		// Get all external accounts tied to the current user  		$data = array( -			'user_id' => (int) $this->user->data['user_id'], +			'user_id' => ($user_id <= 0) ? (int) $this->user->data['user_id'] : (int) $user_id,  		);  		$sql = 'SELECT oauth_provider_id, provider FROM ' . $this->auth_provider_oauth_token_account_assoc . '  			WHERE ' . $this->db->sql_build_array('SELECT', $data); @@ -616,10 +616,13 @@ class oauth extends \phpbb\auth\provider\base  			return 'LOGIN_LINK_MISSING_DATA';  		} +		// Remove user specified in $link_data if possible +		$user_id = isset($link_data['user_id']) ? $link_data['user_id'] : $this->user->data['user_id']; +  		// Remove the link  		$sql = 'DELETE FROM ' . $this->auth_provider_oauth_token_account_assoc . "  			WHERE provider = '" . $this->db->sql_escape($link_data['oauth_service']) . "' -				AND user_id = " . (int) $this->user->data['user_id']; +				AND user_id = " . (int) $user_id;  		$this->db->sql_query($sql);  		// Clear all tokens belonging to the user on this servce  | 
