david / django-oauth (http://oauth.net/)

Support of OAuth in Django. Note that http://code.welldev.org/django-oauth-plus will use python-oauth2 if you're interested in it.

Clone this repository (size: 114.7 KB): HTTPS / SSH
$ hg clone http://code.welldev.org/django-oauth
commit 42: 02962bee73ef
parent 41: dccb76f25f3f
branch: default
Give a way to know if the authorization succeed or not to the callback view, you can now test on passed args if there is a token or an error. Thanks Toby White.
David Larlet / david
11 months ago

Changed (Δ238 bytes):

raw changeset »

oauth_provider/views.py (9 lines added, 5 lines removed)

Up to file-list oauth_provider/views.py:

@@ -91,9 +91,9 @@ def user_authorization(request):
91
91
                    # authorize the token
92
92
                    token = oauth_server.authorize_token(token, request.user)
93
93
                    # return the token key
94
                    args = token.to_string(only_key=True)
94
                    args = { 'token': token }
95
95
                else:
96
                    args = 'error=%s' % _('Access not granted by user.')
96
                    args = { 'error': _('Access not granted by user.') }
97
97
            except OAuthError, err:
98
98
                response = send_oauth_error(err)
99
99
            
@@ -102,7 +102,11 @@ def user_authorization(request):
102
102
                    url_delimiter = "&"
103
103
                else:
104
104
                    url_delimiter = "?"
105
                response = HttpResponseRedirect('%s%s%s' % (callback, url_delimiter, args))
105
                if 'token' in args:
106
                    query_args = args['token'].to_string(only_key=True)
107
                else: # access is not authorized i.e. error
108
                    query_args = 'error=%s' % args['error']
109
                response = HttpResponseRedirect('%s%s%s' % (callback, url_delimiter, query_args))
106
110
            else:
107
111
                # try to get custom callback view
108
112
                callback_view_str = getattr(settings, OAUTH_CALLBACK_VIEW, 
@@ -111,7 +115,7 @@ def user_authorization(request):
111
115
                    callback_view = get_callable(callback_view_str)
112
116
                except AttributeError:
113
117
                    raise Exception, "%s view doesn't exist." % callback_view_str
114
                response = callback_view(request)
118
                response = callback_view(request, **args)
115
119
        else:
116
120
            response = send_oauth_error(OAuthError(_('Action not allowed.')))
117
121
        return response
@@ -149,7 +153,7 @@ def fake_authorize_view(request, token,
149
153
    """
150
154
    return HttpResponse('Fake authorize view for %s.' % token.consumer.name)
151
155
152
def fake_callback_view(request):
156
def fake_callback_view(request, **args):
153
157
    """
154
158
    Fake view for tests. It must return an ``HttpResponse``.
155
159