Skip to content
Snippets Groups Projects
Commit 0985b0ed authored by Bermudez, Jaime's avatar Bermudez, Jaime
Browse files

Add a new base mixin for LTI views that has two convenience methods for...

Add a new base mixin for LTI views that has two convenience methods for pulling params from session.  Add full_name as a stored session variable.
parent 371fad97
No related branches found
No related tags found
No related merge requests found
......@@ -83,6 +83,7 @@ class LTIAuthMiddleware(object):
'lis_person_name_given': request.POST.get('lis_person_name_given', None),
'lis_person_name_family': request.POST.get('lis_person_name_family', None),
'lis_person_contact_email_primary': request.POST.get('lis_person_contact_email_primary', None),
'lis_person_name_full': request.POST.get('lis_person_name_full', None),
'user_id': request.POST.get('user_id', None),
'custom_canvas_user_id': request.POST.get('custom_canvas_user_id', None),
'custom_canvas_api_domain': request.POST.get('custom_canvas_api_domain', None),
......
......@@ -5,7 +5,15 @@ from django.core.exceptions import PermissionDenied
from braces.views import LoginRequiredMixin
class LTIRoleRestrictionMixin(object):
class LTIUtilityMixin(object):
def get_lti_param(self, keyword, default=None):
return self.request.session['LTI_LAUNCH'].get(keyword, default)
def current_user_roles(self):
return self.get_lti_param('roles', [])
class LTIRoleRestrictionMixin(LTIUtilityMixin):
allowed_roles = None
redirect_url = reverse_lazy('not_authorized')
raise_exception = False
......@@ -22,8 +30,7 @@ class LTIRoleRestrictionMixin(object):
else:
allowed = self.allowed_roles
lti_params = request.session.get('LTI_LAUNCH', None)
user_roles = lti_params.get('roles', [])
user_roles = self.current_user_roles()
if set(allowed) & set(user_roles):
return super(LTIRoleRestrictionMixin, self).dispatch(request, *args, **kwargs)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment