def ssl_login(request): """ This is called by student.views.index when MITX_FEATURES['AUTH_USE_MIT_CERTIFICATES'] = True Used for MIT user authentication. This presumes the web server (nginx) has been configured to require specific client certificates. If the incoming protocol is HTTPS (SSL) then authenticate via client certificate. The certificate provides user email and fullname; this populates the ExternalAuthMap. The user is nevertheless still asked to complete the edX signup. Else continues on with student.views.index, and no authentication. """ cert = ssl_get_cert_from_request(request) if not cert: # no certificate information - go onward to main index return student_views.index(request) (user, email, fullname) = ssl_dn_extract_info(cert) retfun = functools.partial(student_views.index, request) return external_login_or_signup(request, external_id=email, external_domain="ssl:MIT", credentials=cert, email=email, fullname=fullname, retfun=retfun)
def signup(request, eamap=None): """ Present form to complete for signup via external authentication. Even though the user has external credentials, he/she still needs to create an account on the edX system, and fill in the user registration form. eamap is an ExteralAuthMap object, specifying the external user for which to complete the signup. """ if eamap is None: pass # save this for use by student.views.create_account request.session['ExternalAuthMap'] = eamap # default conjoin name, no spaces username = eamap.external_name.replace(' ', '') context = { 'has_extauth_info': True, 'show_signup_immediately': True, 'extauth_email': eamap.external_email, 'extauth_username': username, 'extauth_name': eamap.external_name, } log.debug('Doing signup for %s' % eamap.external_email) return student_views.index(request, extra_context=context)
def signup(request, eamap=None): """ Present form to complete for signup via external authentication. Even though the user has external credentials, he/she still needs to create an account on the edX system, and fill in the user registration form. eamap is an ExteralAuthMap object, specifying the external user for which to complete the signup. """ if eamap is None: pass # save this for use by student.views.create_account request.session['ExternalAuthMap'] = eamap # default conjoin name, no spaces username = eamap.external_name.replace(' ', '') context = {'has_extauth_info': True, 'show_signup_immediately': True, 'extauth_email': eamap.external_email, 'extauth_username': username, 'extauth_name': eamap.external_name, } log.debug('Doing signup for %s' % eamap.external_email) return student_views.index(request, extra_context=context)