Ejemplo n.º 1
0
    def process_request(self, request):
        if not request.user.is_anonymous():
            try:
                provider = filter(lambda p: p["name"] == request.user.provider_key,
                    (settings.OAUTH2_PROVIDERS[k] for k in
                        settings.OAUTH2_PROVIDERS))[-1]

                c = Client(token_endpoint=provider["token_endpoint"],
                    resource_endpoint=provider["resource_endpoint"],
                    auth_endpoint=provider["auth_endpoint"],
                    redirect_uri=provider.get("redirect_uri", None),
                    client_id=provider["client_id"],
                    client_secret=provider["client_secret"])
                
                c.access_token = request.user.access_token
                c.expires = request.user.expires

                setattr(request.user, "resource", c)

            # play nice with other authentication backends
            except IndexError:
                raise KeyError("Provider %s doesn't exist" % 
                    request.user.provider_key)
            except AttributeError: 
                # current user isn't a django_sanction user
                pass
Ejemplo n.º 2
0
    def resource(self):
        provider = settings.SANCTION_PROVIDERS[self.name]
        c = SanctionClient(auth_endpoint=provider['auth_endpoint'],
            token_endpoint=provider['token_endpoint'],
            resource_endpoint=provider['resource_endpoint'],
            client_id=provider['client_id'],
            client_secret=provider['client_secret'])

        c.refresh_token = self.refresh_token
        c.access_token = self.access_token
        c.token_expires = self.token_expires
        return c