This file is indexed.

/usr/share/pyshared/social_auth/backends/steam.py is in python-django-social-auth 0.7.23-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
"""Steam OpenId support"""
import re
import urllib
import urllib2

from django.utils import simplejson

from social_auth.backends import OpenIdAuth, OpenIDBackend
from social_auth.exceptions import AuthFailed
from social_auth.utils import setting


STEAM_ID = re.compile('steamcommunity.com/openid/id/(.*?)$')
USER_INFO = 'http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?'


class SteamBackend(OpenIDBackend):
    """Steam OpenId authentication backend"""
    name = 'steam'

    def get_user_id(self, details, response):
        """Return user unique id provided by service"""
        return self._user_id(response)

    def get_user_details(self, response):
        user_id = self._user_id(response)
        url = USER_INFO + urllib.urlencode({'key': setting('STEAM_API_KEY'),
                                            'steamids': user_id})
        details = {}
        try:
            player = simplejson.load(urllib2.urlopen(url))
        except (ValueError, IOError):
            pass
        else:
            if len(player['response']['players']) > 0:
                player = player['response']['players'][0]
                details = {'username': player.get('personaname'),
                           'email': '',
                           'fullname': '',
                           'first_name': '',
                           'last_name': '',
                           'player': player}
        return details

    def extra_data(self, user, uid, response, details):
        return details['player']

    def _user_id(self, response):
        match = STEAM_ID.search(response.identity_url)
        if match is None:
            raise AuthFailed(self, 'Missing Steam Id')
        return match.group(1)


class SteamAuth(OpenIdAuth):
    """Steam OpenId authentication"""
    AUTH_BACKEND = SteamBackend

    def openid_url(self):
        """Return Steam OpenId service url"""
        return 'http://steamcommunity.com/openid'

    @classmethod
    def enabled(cls):
        """Steam OpenId is enabled when STEAM_API_KEY is defined"""
        return setting('STEAM_API_KEY') is not None


# Backend definition
BACKENDS = {
    'steam': SteamAuth
}