More of e-mail change process works
This commit is contained in:
@@ -30,13 +30,14 @@ class UserProfile(models.Model):
|
||||
meta = models.CharField(blank=True, max_length=255) # JSON dictionary for future expansion
|
||||
courseware = models.CharField(blank=True, max_length=255, default='course.xml')
|
||||
|
||||
def get_meta():
|
||||
def get_meta(self):
|
||||
try:
|
||||
js = json.reads(self.meta)
|
||||
except:
|
||||
js = dict()
|
||||
return json
|
||||
def set_meta(js):
|
||||
return js
|
||||
|
||||
def set_meta(self,js):
|
||||
self.meta = json.dumps(js)
|
||||
|
||||
## TODO: Should be renamed to generic UserGroup, and possibly
|
||||
|
||||
@@ -2,6 +2,7 @@ import json
|
||||
import logging
|
||||
import random
|
||||
import string
|
||||
import uuid
|
||||
|
||||
from django.conf import settings
|
||||
from django.contrib.auth import logout, authenticate, login
|
||||
@@ -15,7 +16,7 @@ from django.http import HttpResponse, Http404
|
||||
from django.shortcuts import redirect
|
||||
from mitxmako.shortcuts import render_to_response, render_to_string
|
||||
|
||||
from models import Registration, UserProfile
|
||||
from models import Registration, UserProfile, PendingNameChange, PendingEmailChange
|
||||
from django_future.csrf import ensure_csrf_cookie
|
||||
|
||||
log = logging.getLogger("mitx.user")
|
||||
@@ -330,12 +331,13 @@ def change_email_request(request):
|
||||
d = {'site':settings.SITE_NAME,
|
||||
'key':pec.activation_key,
|
||||
'old_email' : user.email,
|
||||
'new_email' : pec.email}
|
||||
'new_email' : pec.new_email}
|
||||
|
||||
subject = render_to_string('emails/email_change_subject.txt',d)
|
||||
subject = ''.join(subject.splitlines())
|
||||
message = render_to_string('emails/email_change.txt',d)
|
||||
|
||||
res=send_email(subject, message, settings.DEFAULT_FROM_EMAIL, [pec.email])
|
||||
res=send_mail(subject, message, settings.DEFAULT_FROM_EMAIL, [pec.new_email])
|
||||
|
||||
return HttpResponse(json.dumps({'success':True}))
|
||||
|
||||
@@ -349,14 +351,17 @@ def confirm_email_change(request, key):
|
||||
except:
|
||||
return render_to_response("email_invalid_key.html")
|
||||
|
||||
subject = render_to_string('emails/confirm_email_change_subject.txt',d)
|
||||
user = pec.user
|
||||
d = {'site':settings.SITE_NAME,
|
||||
'old_email' : user.email,
|
||||
'new_email' : pec.new_email}
|
||||
|
||||
subject = render_to_string('emails/email_change_subject.txt',d)
|
||||
subject = ''.join(subject.splitlines())
|
||||
message = render_to_string('emails/confirm_email_change.txt',d)
|
||||
|
||||
user = pec.user
|
||||
user.email_user(subject, message, DEFAULT_FROM_EMAIL)
|
||||
up = UserProfile.objects.get( user = user )
|
||||
meta = up.get_meta()
|
||||
print meta
|
||||
if 'old_emails' not in meta:
|
||||
meta['old_emails'] = []
|
||||
meta['old_emails'].append(user.email)
|
||||
@@ -365,8 +370,9 @@ def confirm_email_change(request, key):
|
||||
user.email = pec.new_email
|
||||
user.save()
|
||||
pec.delete()
|
||||
user.email_user(subject, message, settings.DEFAULT_FROM_EMAIL)
|
||||
|
||||
return render_to_response("email_change_successful.html")
|
||||
return render_to_response("email_change_successful.html", d)
|
||||
|
||||
@ensure_csrf_cookie
|
||||
def change_name_request(request):
|
||||
|
||||
6
templates/emails/confirm_email_change.txt
Normal file
6
templates/emails/confirm_email_change.txt
Normal file
@@ -0,0 +1,6 @@
|
||||
This is to confirm that you changed the e-mail associated with MITx
|
||||
from ${old_email} to ${new_email}. If you did not make this request,
|
||||
please contact the course staff immediately. Contact information is
|
||||
listed at:
|
||||
|
||||
https://6002x.mitx.mit.edu/t/mitx_help.html
|
||||
@@ -1,8 +1,8 @@
|
||||
We received a request to change the e-mail associated with MITx
|
||||
account ${username} from ${old_email} to ${new_email}. If this is
|
||||
correct, please confirm your new e-mail address by visiting:
|
||||
We received a request to change the e-mail associated with your MITx
|
||||
account from ${old_email} to ${new_email}. If this is correct, please
|
||||
confirm your new e-mail address by visiting:
|
||||
|
||||
http://${ site }/confirmemail/${ key }
|
||||
http://${ site }/email_confirm/${ key }
|
||||
|
||||
If you didn't request this, you don't need to do anything; you won't
|
||||
receive any more email from us. Please do not reply to this e-mail; if
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
This is to confirm that you changed the e-mail associated with MITx
|
||||
account ${username} from ${oldemail} to ${newemail}. If you did not
|
||||
make this request, please contact the course staff
|
||||
immediately. Contact information is listed at:
|
||||
|
||||
https://6002x.mitx.mit.edu/t/mitx_help.html
|
||||
@@ -79,18 +79,23 @@ $(function() {
|
||||
});
|
||||
|
||||
|
||||
$("#submit_email_change").click(function(){
|
||||
alert("Test 1");
|
||||
$("#change_email_form").submit(function(){
|
||||
var new_email = $('#new_email_field').val();
|
||||
var new_password = $('#new_email_password').val();
|
||||
|
||||
postJSON('/email_change/',{"new_email":new_email},
|
||||
function(data){});
|
||||
alert("Test 2");
|
||||
postJSON('/change_email',{"new_email":new_email,
|
||||
"password":new_password},
|
||||
function(data){
|
||||
if(data.success){
|
||||
$("#change_email").html("Request submitted. You'll receive a confirmation in your in-box.");
|
||||
} else {
|
||||
$("#change_email_error").html(data.error);
|
||||
}
|
||||
});
|
||||
log_event("profile", {"type":"email_change_request",
|
||||
"old_email":"${email}",
|
||||
"new_email":new_email});
|
||||
alert("Test 3");
|
||||
return false;
|
||||
});
|
||||
|
||||
});
|
||||
@@ -201,7 +206,8 @@ $(function() {
|
||||
|
||||
<div id="apply_name_change" class="leanModal_box">
|
||||
<h1>Apply to change your name</h1>
|
||||
<form>
|
||||
<form id="change_name_form">
|
||||
<div id="change_name_error"> </div>
|
||||
<fieldset>
|
||||
<p>A member of the course staff will review your request, and if approved, update your information. Please allow up to a week for your requested to be processed.</p>
|
||||
|
||||
@@ -224,8 +230,8 @@ $(function() {
|
||||
|
||||
<div id="change_email" class="leanModal_box">
|
||||
<h1>Change e-mail</h1>
|
||||
<form>
|
||||
|
||||
<form id="change_email_form">
|
||||
<div id="change_email_error"> </div>
|
||||
<fieldset>
|
||||
<ul>
|
||||
<li>
|
||||
@@ -249,7 +255,8 @@ $(function() {
|
||||
<div id="unenroll_course" class="leanModal_box">
|
||||
<h1> Unenroll </h1>
|
||||
<p> At the end of the semester, all students who do not complete the course will be automatically dropped. If you would still prefer to deactivate your account, you can: </p>
|
||||
<form>
|
||||
<form id="unenroll_form">
|
||||
<div id="unenroll_error"> </div>
|
||||
<fieldset>
|
||||
<ul>
|
||||
<li>
|
||||
|
||||
4
urls.py
4
urls.py
@@ -9,8 +9,8 @@ import django.contrib.auth.views
|
||||
|
||||
urlpatterns = ('',
|
||||
url(r'^$', 'student.views.index'), # Main marketing page, or redirect to courseware
|
||||
url(r'^email_change$', 'student.views.change_email_request'),
|
||||
url(r'^email_confirm$', 'student.views.change_email_confirm'),
|
||||
url(r'^change_email$', 'student.views.change_email_request'),
|
||||
url(r'^email_confirm/(?P<key>[^/]*)$', 'student.views.confirm_email_change'),
|
||||
url(r'^gradebook$', 'courseware.views.gradebook'),
|
||||
url(r'^event$', 'track.views.user_track'),
|
||||
url(r'^t/(?P<template>[^/]*)$', 'static_template_view.views.index'),
|
||||
|
||||
Reference in New Issue
Block a user