~ubuntu-branches/debian/sid/social-auth-core/sid

« back to all changes in this revision

Viewing changes to social_core/backends/openshift.py

  • Committer: Package Import Robot
  • Author(s): Andre Bianchi
  • Date: 2018-02-22 19:49:12 UTC
  • Revision ID: package-import@ubuntu.com-20180222194912-4lqv8mlhnqc4ncd3
Tags: upstream-1.7.0
ImportĀ upstreamĀ versionĀ 1.7.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
"""
 
2
Openshift OAuth2 backend
 
3
"""
 
4
import requests
 
5
 
 
6
from six.moves.urllib.parse import urljoin
 
7
 
 
8
from ..utils import append_slash
 
9
from .oauth import BaseOAuth2
 
10
 
 
11
 
 
12
class OpenshiftOAuth2(BaseOAuth2):
 
13
    name = 'openshift'
 
14
    ACCESS_TOKEN_METHOD = 'POST'
 
15
 
 
16
    def access_token_url(self):
 
17
        return urljoin(append_slash(self.setting('URL')), 'oauth/token')
 
18
 
 
19
    def authorization_url(self):
 
20
        return urljoin(append_slash(self.setting('URL')), 'oauth/authorize')
 
21
 
 
22
    def get_user_id(self, details, response):
 
23
        return response['metadata']['uid']
 
24
 
 
25
    def get_user_details(self, response):
 
26
        """Return user details from openshift account"""
 
27
        username = response['metadata']['name']
 
28
        email = response['metadata']['name']
 
29
        return {'username': username,
 
30
                'email': email}
 
31
 
 
32
    def user_data(self, access_token, *args, **kwargs):
 
33
        """Loads user data from service"""
 
34
        headers = {'Authorization': 'Bearer ' + access_token}
 
35
 
 
36
        return requests.get(
 
37
            urljoin(append_slash(self.setting('URL')), 'oapi/v1/users/~'),
 
38
            headers=headers
 
39
        ).json()