Commit 874c6314 by Diana Huang

Allow users who are not logged in to register.

parent 15b23a16
...@@ -6,6 +6,8 @@ from django.shortcuts import redirect ...@@ -6,6 +6,8 @@ from django.shortcuts import redirect
from django.views.generic.base import View from django.views.generic.base import View
from django.utils.translation import ugettext as _ from django.utils.translation import ugettext as _
from django.utils.http import urlencode from django.utils.http import urlencode
from django.contrib.auth.decorators import login_required
from django.utils.decorators import method_decorator
from mitxmako.shortcuts import render_to_response from mitxmako.shortcuts import render_to_response
...@@ -16,12 +18,13 @@ from student.views import course_from_id ...@@ -16,12 +18,13 @@ from student.views import course_from_id
class ChooseModeView(View): class ChooseModeView(View):
@method_decorator(login_required)
def get(self, request): def get(self, request):
course_id = request.GET.get("course_id") course_id = request.GET.get("course_id")
context = { context = {
"course_id" : course_id, "course_id": course_id,
"modes" : CourseMode.modes_for_course_dict(course_id), "modes": CourseMode.modes_for_course_dict(course_id),
"course_name" : course_from_id(course_id).display_name "course_name": course_from_id(course_id).display_name
} }
return render_to_response("course_modes/choose.html", context) return render_to_response("course_modes/choose.html", context)
......
...@@ -325,10 +325,12 @@ def try_change_enrollment(request): ...@@ -325,10 +325,12 @@ def try_change_enrollment(request):
enrollment_response.content enrollment_response.content
) )
) )
if enrollment_response.content != '':
return enrollment_response.content
except Exception, e: except Exception, e:
log.exception("Exception automatically enrolling after login: {0}".format(str(e))) log.exception("Exception automatically enrolling after login: {0}".format(str(e)))
@login_required
@require_POST @require_POST
def change_enrollment(request): def change_enrollment(request):
""" """
...@@ -354,6 +356,9 @@ def change_enrollment(request): ...@@ -354,6 +356,9 @@ def change_enrollment(request):
if course_id is None: if course_id is None:
return HttpResponseBadRequest(_("Course id not specified")) return HttpResponseBadRequest(_("Course id not specified"))
if not user.is_authenticated():
return HttpResponseForbidden()
if action == "enroll": if action == "enroll":
# Make sure the course exists # Make sure the course exists
# We don't do this check on unenroll, or a bad course id can't be unenrolled from # We don't do this check on unenroll, or a bad course id can't be unenrolled from
...@@ -458,10 +463,10 @@ def login_user(request, error=""): ...@@ -458,10 +463,10 @@ def login_user(request, error=""):
log.exception(e) log.exception(e)
raise raise
try_change_enrollment(request) redirect_url = try_change_enrollment(request)
statsd.increment("common.student.successful_login") statsd.increment("common.student.successful_login")
response = HttpResponse(json.dumps({'success': True})) response = HttpResponse(json.dumps({'success': True, 'redirect_url': redirect_url}))
# set the login cookie for the edx marketing site # set the login cookie for the edx marketing site
# we want this cookie to be accessed via javascript # we want this cookie to be accessed via javascript
...@@ -724,14 +729,14 @@ def create_account(request, post_override=None): ...@@ -724,14 +729,14 @@ def create_account(request, post_override=None):
login_user.save() login_user.save()
AUDIT_LOG.info(u"Login activated on extauth account - {0} ({1})".format(login_user.username, login_user.email)) AUDIT_LOG.info(u"Login activated on extauth account - {0} ({1})".format(login_user.username, login_user.email))
try_change_enrollment(request) redirect_url = try_change_enrollment(request)
statsd.increment("common.student.account_created") statsd.increment("common.student.account_created")
js = {'success': True} response_params = {'success': True,
HttpResponse(json.dumps(js), mimetype="application/json") 'redirect_url': redirect_url}
response = HttpResponse(json.dumps({'success': True})) response = HttpResponse(json.dumps(response_params))
# set the login cookie for the edx marketing site # set the login cookie for the edx marketing site
# we want this cookie to be accessed via javascript # we want this cookie to be accessed via javascript
......
...@@ -50,6 +50,8 @@ ...@@ -50,6 +50,8 @@
next=u.split("next=")[1]; next=u.split("next=")[1];
if (next && !isExternal(next)) { if (next && !isExternal(next)) {
location.href=next; location.href=next;
} else if(json.redirect_url){
location.href=json.redirect_url;
} else { } else {
location.href="${reverse('dashboard')}"; location.href="${reverse('dashboard')}";
} }
......
...@@ -53,7 +53,12 @@ ...@@ -53,7 +53,12 @@
$('#register-form').on('ajax:success', function(event, json, xhr) { $('#register-form').on('ajax:success', function(event, json, xhr) {
if(json.success) { if(json.success) {
if(json.redirect_url){
location.href=json.redirect_url;
}
else {
location.href="${reverse('dashboard')}"; location.href="${reverse('dashboard')}";
}
} else { } else {
toggleSubmitButton(true); toggleSubmitButton(true);
$('.status.message.submission-error').addClass('is-shown').focus(); $('.status.message.submission-error').addClass('is-shown').focus();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment