The background colour of the success message changed

When the password is successfully changed, the background colour
of the success message is changed from red to green to avoid
users mistaking it for an error message.

Change-Id: Icbaae9f15d02368539e47cd5e929c19ed67b5fed
Closes-Bug: #1520486
This commit is contained in:
Sharat Sharma 2016-09-12 15:22:20 +05:30
parent bff48543ba
commit 618d4e1737
5 changed files with 21 additions and 10 deletions

View File

@ -47,12 +47,12 @@ class HorizonMiddleware(object):
logout_reason = None
def _logout(self, request, login_url=None, message=None):
def _logout(self, request, login_url=None, message=None, status='success'):
"""Logout a user and display a logout message."""
response = auth_views.logout(request, login_url)
if message is not None:
self.logout_reason = message
utils.add_logout_reason(request, response, message)
utils.add_logout_reason(request, response, message, status)
return response
def process_request(self, request):
@ -128,7 +128,8 @@ class HorizonMiddleware(object):
redirect_field_name=field_name)
if isinstance(exception, exceptions.NotAuthorized):
logout_reason = _("Unauthorized. Please try logging in again.")
utils.add_logout_reason(request, response, logout_reason)
utils.add_logout_reason(request, response, logout_reason,
'error')
# delete messages, created in get_data() method
# since we are going to redirect user to the login page
response.delete_cookie('messages')
@ -172,7 +173,8 @@ class HorizonMiddleware(object):
redirect_response['logout'] = True
if self.logout_reason is not None:
utils.add_logout_reason(
request, redirect_response, self.logout_reason)
request, redirect_response, self.logout_reason,
'error')
else:
redirect_response = http.HttpResponse()
# Use a set while checking if we want a cookie's attributes

View File

@ -51,9 +51,13 @@
</div>
{% endif %}
{% if request.COOKIES.logout_reason %}
<div class="form-group clearfix error help-block alert alert-danger" id="logout_reason">
<p>{{ request.COOKIES.logout_reason }}</p>
</div>
{% if request.COOKIES.logout_status == "success" %}
<div class="form-group clearfix error help-block alert alert-success" id="logout_reason">
{% else %}
<div class="form-group clearfix error help-block alert alert-danger" id="logout_reason">
{% endif %}
<p>{{ request.COOKIES.logout_reason }}</p>
</div>
{% endif %}
{% if next %}
<input type="hidden" name="{{ redirect_field_name }}" value="{{ next }}" />

View File

@ -38,7 +38,7 @@ def bytes_to_gigabytes(bytes):
return int(math.ceil(float(bytes) / units.Gi))
def add_logout_reason(request, response, reason):
def add_logout_reason(request, response, reason, status='success'):
# Store the translated string in the cookie
lang = translation.get_language_from_request(request)
with translation.override(lang):
@ -46,9 +46,10 @@ def add_logout_reason(request, response, reason):
if six.PY2:
reason = reason.encode('utf-8')
response.set_cookie('logout_reason', reason, max_age=10)
response.set_cookie('logout_status', status, max_age=10)
def logout_with_message(request, msg, redirect=True):
def logout_with_message(request, msg, redirect=True, status='success'):
"""Send HttpResponseRedirect to LOGOUT_URL.
`msg` is a message displayed on the login page after the logout, to explain
@ -60,7 +61,7 @@ def logout_with_message(request, msg, redirect=True):
'%s?next=%s' % (settings.LOGOUT_URL, request.path))
else:
response = http.HttpResponseRedirect(settings.LOGOUT_URL)
add_logout_reason(request, response, msg)
add_logout_reason(request, response, msg, status)
return response

View File

@ -67,8 +67,10 @@ class ChangePasswordTests(test.TestCase):
self.assertRedirectsNoFollow(res, settings.LOGOUT_URL)
self.assertIn('logout_reason', res.cookies)
self.assertIn('logout_status', res.cookies)
self.assertEqual(res.cookies['logout_reason'].value,
"Password changed. Please log in again to continue.")
self.assertEqual('success', res.cookies['logout_status'].value)
scheme, netloc, path, query, fragment = urlsplit(res.url)
redirect_response = res.client.get(path, http.QueryDict(query))
self.assertRedirectsNoFollow(redirect_response, settings.LOGIN_URL)

View File

@ -52,6 +52,8 @@ def splash(request):
response = shortcuts.redirect(horizon.get_user_home(request.user))
if 'logout_reason' in request.COOKIES:
response.delete_cookie('logout_reason')
if 'logout_status' in request.COOKIES:
response.delete_cookie('logout_status')
# Display Message of the Day message from the message files
# located in MESSAGES_PATH
if MESSAGES_PATH: