Skip to content

Commit 8715f9a

Browse files
committed
Fix bug when trying to add anonymous user to session
With the new json serializer, we can't serialize an AnonymousUser. Let's return a view that says they have no permissions instead, and prompt them to log out
1 parent 16fcabd commit 8715f9a

File tree

2 files changed

+11
-0
lines changed

2 files changed

+11
-0
lines changed

oauthadmin/urls.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,5 @@
1111
url(r"callback/", oauthadmin.views.callback),
1212
url(r"logout/", oauthadmin.views.logout),
1313
url(r"logout_redirect/", oauthadmin.views.logout_redirect),
14+
url(r"no_permissions/", oauthadmin.views.no_permissions),
1415
]

oauthadmin/views.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,10 @@ def callback(request):
8484
return HttpResponseRedirect(request.build_absolute_uri(reverse(oauthadmin.views.login)))
8585

8686
user = import_by_path(app_setting('GET_USER'))(token)
87+
88+
if user.is_anonymous():
89+
return HttpResponseRedirect(reverse(oauthadmin.views.no_permissions))
90+
8791
serialized_user = serializers.serialize("json", [user])
8892

8993
request.session['last_verified_at'] = int(time())
@@ -109,3 +113,9 @@ def logout(request):
109113

110114
def logout_redirect(request):
111115
return redirect(app_setting('BASE_URL') + 'logout?next=' + quote_plus(request.build_absolute_uri(reverse(oauthadmin.views.logout))))
116+
117+
118+
def no_permissions(request):
119+
logout_url = app_setting('BASE_URL') + 'logout?next=' + quote_plus(request.build_absolute_uri(reverse(oauthadmin.views.logout)))
120+
return HttpResponse('Sorry, your user does not have permission to access this application. Please <a href="{0}">Log Out</a> and try again'.format(logout_url))
121+

0 commit comments

Comments
 (0)