Skip to content

Commit

Permalink
Fixed the other half of forgot password flow accourding to logistration.
Browse files Browse the repository at this point in the history
ECOM-2947
  • Loading branch information
waheedahmed committed Mar 8, 2016
1 parent 5f51db0 commit 178f5a6
Show file tree
Hide file tree
Showing 5 changed files with 90 additions and 174 deletions.
4 changes: 2 additions & 2 deletions lms/djangoapps/student_account/test/test_views.py
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ def test_password_change(self):
follow=True
)
self.assertEqual(response.status_code, 200)
self.assertContains(response, "Your password has been set.")
self.assertContains(response, "Your password has been reset.")

# Log the user out to clear session data
self.client.logout()
Expand All @@ -116,7 +116,7 @@ def test_password_change(self):
follow=True
)
self.assertEqual(response.status_code, 200)
self.assertContains(response, "The password reset link was invalid, possibly because the link has already been used.")
self.assertContains(response, "This password reset link is invalid. It may have been used already.")

self.client.logout()

Expand Down
15 changes: 15 additions & 0 deletions lms/static/js/student_account/password_reset.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
/**
* Password reset template JS.
*/
$(function() {
'use strict';
// adding js class for styling with accessibility in mind
$("body").addClass("js");

// form field label styling on focus
$("form :input").focus(function() {
$("label[for='" + this.id + "']").parent().addClass("is-focused");
}).blur(function() {
$("label").parent().removeClass("is-focused");
});
});
2 changes: 0 additions & 2 deletions lms/templates/main_django.html
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,6 @@

{% stylesheet 'style-vendor' %}
{% stylesheet 'style-main' %}
{% stylesheet 'style-course-vendor' %}
{% stylesheet 'style-course' %}

{% block main_vendor_js %}
{% javascript 'main_vendor' %}
Expand Down
59 changes: 20 additions & 39 deletions lms/templates/registration/password_reset_complete.html
Original file line number Diff line number Diff line change
Expand Up @@ -6,49 +6,30 @@
{% endblock %}

{% block bodyextra %}
<script type="text/javascript">
$(function() {

// adding js class for styling with accessibility in mind
$('body').addClass('js');

// new window/tab opening
$('a[rel="external"], a[class="new-vp"]')
.click( function() {
window.open( $(this).attr('href') );
return false;
});

// form field label styling on focus
$("form :input").focus(function() {
$("label[for='" + this.id + "']").parent().addClass("is-focused");
}).blur(function() {
$("label").parent().removeClass("is-focused");
});
});
</script>
<script type="text/javascript">
$(function() {
'use strict';
// adding js class for styling with accessibility in mind
$('body').addClass('js');
});
</script>
{% endblock %}

{% block bodyclass %}view-passwordreset{% endblock %}

{% block body %}
<section class="introduction">
<header>
<h1 class="title">
<span class="title-super">
{% trans "Your Password Reset is Complete" %}
</span>
</h1>
</header>
</section>

<section class="passwordreset container">
{% block content %}
<section role="main" class="content">
{% blocktrans with link_start='<a href="/login">' link_end='</a>' %}
Your password has been set. You may go ahead and {{ link_start }}log in{{ link_end }} now.
{% endblocktrans %}
<div id="password-reset-complete-container" class="login-register">
<section id="password-reset-complete-anchor" class="form-type">
<div id="password-reset-complete" class="form-wrapper" aria-hidden="true">
<div class="status submission-success" aria-live="polite">
<h4 class="message-title">{% trans "Password Reset Complete" %}</h4>
<ul class="message-copy">
{% blocktrans with link_start='<a href="/login">' link_end='</a>' %}
Your password has been reset. {{ link_start }}Sign in to your account.{{ link_end }}
{% endblocktrans %}
</ul>
</div>
</div>
</section>
{% endblock %}
</section>
</div>
{% endblock %}
184 changes: 53 additions & 131 deletions lms/templates/registration/password_reset_confirm.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,148 +3,70 @@

{% block title %}
<title>
{% blocktrans with platform_name=platform_name %}
Reset Your {{ platform_name }} Password
{% endblocktrans %}
{% blocktrans with platform_name=platform_name %}
Reset Your {{ platform_name }} Password
{% endblocktrans %}
</title>
{% endblock %}

{% block bodyextra %}
<script type="text/javascript">
$(function() {

// adding js class for styling with accessibility in mind
$('body').addClass('js');

// new window/tab opening
$('a[rel="external"], a[class="new-vp"]')
.click( function() {
window.open( $(this).attr('href') );
return false;
});

// form field label styling on focus
$("form :input").focus(function() {
$("label[for='" + this.id + "']").parent().addClass("is-focused");
}).blur(function() {
$("label").parent().removeClass("is-focused");
});
});
</script>
<script type="text/javascript" src="{{STATIC_URL}}js/student_account/password_reset.js"></script>
{% endblock %}

{% block bodyclass %}view-passwordreset{% endblock %}

{% block body %}
<section class="introduction">
<header>
<h1 class="title">
<span class="title-super">
{% blocktrans with platform_name=platform_name %}
Reset Your {{ platform_name }} Password
{% endblocktrans %}
</span>
</h1>
</header>
</section>

<section class="passwordreset container">
<section role="main" class="content">
{% if validlink %}
<header>
<h2 class="sr">{% trans "Password Reset Form" %}</h2>
</header>

<form role="form" id="passwordreset-form" method="post" action="">{% csrf_token %}
<!-- status messages -->
<div role="alert" class="status message">
<h3 class="message-title">
{% blocktrans %}
We're sorry, but this version of your browser is not supported. Try again using a different browser or a newer version of your browser.
{% endblocktrans %}
</h3>
</div>

{% if err_msg %}
<div role="alert" class="status message submission-error" style="display: block;">
{% else %}
<div role="alert" class="status message submission-error" style="display: none;">
{% endif %}
<h3 class="message-title">{% trans "The following errors occurred while processing your registration: " %}</h3>
<ul class="message-copy">
{% if err_msg %}
<li>{{err_msg}}</li>
<div id="password-reset-confirm-container" class="login-register">
<section id="password-reset-confirm-anchor" class="form-type">
<div id="password-reset-confirm-form" class="form-wrapper" aria-hidden="true">
<div class="status submission-error {% if not err_msg %} hidden {% endif %}" aria-live="polite">
<h4 class="message-title">{% trans "Error Resetting Password" %}</h4>
<ul class="message-copy">
{% if err_msg %}
<li>{{err_msg}}</li>
{% else %}
<li>{% trans "You must enter and confirm your new password." %}</li>
<li>{% trans "The text in both password fields must match." %}</li>
{% endif %}
</ul>
</div>
{% if validlink %}

<form role="form" id="passwordreset-form" method="post" action="">{% csrf_token %}
<div class="section-title lines">
<h2>
<span class="text">
{% trans "Reset Your Password" %}
</span>
</h2>
</div>

<p class="action-label">
{% trans "Enter and confirm your new password." %}
</p>

<div class="form-field new_password1-new_password1">
<label for="new_password1">{% trans "New Password" %}</label>
<input id="new_password1" type="password" name="new_password1" placeholder="*****" />
</div>
<div class="form-field new_password2-new_password2">
<label for="new_password2">{% trans "Confirm Password" %}</label>
<input id="new_password2" type="password" name="new_password2" placeholder="*****" />
</div>

<button type="submit" class="action action-primary action-update js-reset">{% trans "Reset My Password" %}</button>
</form>
{% else %}
<li>{% trans "You must complete all fields." %}</li>
<li>{% trans "The two password fields didn't match." %}</li>
<div class="status submission-error" aria-live="polite">
<h4 class="message-title">{% trans "Invalid Password Reset Link" %}</h4>
<ul class="message-copy">
{% blocktrans with start_link='<a href="/login">' end_link='</a>' %}
This password reset link is invalid. It may have been used already. To reset your password, go to the {{ start_link }}sign-in{{ end_link }} page and select <strong>Forgot password</strong>.
{% endblocktrans %}
</ul>
</div>
{% endif %}
</ul>
</div>

<div role="alert" class="status message system-error">
<h3 class="message-title">{% trans "We're sorry, our systems seem to be having trouble processing your password reset" %}</h3>
<p class="message-copy">
{% blocktrans with start_link='<a href="{{MKTG_URL_CONTACT}}">' end_link='</a>' %}
Someone has been made aware of this issue. Please try again shortly. Please {{ start_link }}contact us{{ end_link }} about any concerns you have.
{% endblocktrans %}
</p>
</div>

<p class="instructions">
{% trans 'Please enter your new password twice so we can verify you typed it in correctly.' %}
<br />
{% blocktrans with bold_start='<strong class="indicator">' bold_end='</strong>' %}
Required fields are noted by {{bold_start}}bold text and an asterisk (*){{bold_end}}.
{% endblocktrans %}
</p>

<fieldset class="group group-form group-form-requiredinformation">
<legend class="sr">{% trans "Required Information" %}</legend>

<ol class="list-input">
<li class="field required password" id="field-new_password1">
<label for="new_password1">{% trans "Your New Password" %}</label>
<input id="new_password1" type="password" name="new_password1" placeholder="*****" />
</li>
<li class="field required password" id="field-new_password2">
<label for="new_password2">{% trans "Your New Password Again" %}</label>
<input id="new_password2" type="password" name="new_password2" placeholder="*****" />
</li>
</ol>
</fieldset>

<div class="form-actions">
<button name="submit" type="submit" id="submit" class="action action-primary action-update">{% trans "Change My Password" %}</button>
</div>
</form>

{% else %}

<header>
<h2 class="sr">{% trans "Your Password Reset Was Unsuccessful" %}</h2>
</header>
<p>
{% blocktrans with start_link='<a href="/login">' end_link='</a>' %}
The password reset link was invalid, possibly because the link has already been used. Please return to the {{ start_link }}login page{{ end_link }} and start the password reset process again.
{% endblocktrans %}
</p>

{% endif %}
</section>

<aside role="complementary">
<header>
<h3 class="sr">{% trans "Password Reset Help" %}</h3>
</header>

<div class="cta cta-help">
<h3>{% trans "Need Help?" %}</h3>
<p>
{% blocktrans with start_link='<a href="{{MKTG_URL_FAQ}}">' end_link='</a>' %}
View our {{ start_link }}help section for contact information and answers to commonly asked questions{{ end_link }}
{% endblocktrans %}
</p>
</div>
</aside>
</section>
</div>
{% endblock %}

0 comments on commit 178f5a6

Please sign in to comment.