mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-07-30 03:08:56 -04:00
fix user permissions save button sometimes deleting
when you hit the delete button, it flashes the delete button and takes you to the `/service/../user/../delete` url. If you then click the save button, it would make a POST to the delete URL... and delete the user. now the page stays on the edit url, but adds a `?delete=yes` query string. The dangerous flash banner now has an action field which defines where the browser will make the POST to (which remains at /delete).
This commit is contained in:
@@ -1,4 +1,6 @@
|
||||
{% macro banner(body, type=None, with_tick=False, delete_button=None, subhead=None, context=None) %}
|
||||
{% from "components/form.html" import form_wrapper %}
|
||||
|
||||
{% macro banner(body, type=None, with_tick=False, delete_button=None, subhead=None, context=None, action=None) %}
|
||||
<div
|
||||
class='banner{% if type %}-{{ type }}{% endif %}{% if with_tick %}-with-tick{% endif %}'
|
||||
{% if type == 'dangerous' %}
|
||||
@@ -16,14 +18,14 @@
|
||||
</p>
|
||||
{% endif %}
|
||||
{% if delete_button %}
|
||||
<form method='post'>
|
||||
{% call form_wrapper(action=action) %}
|
||||
<input type="hidden" name="csrf_token" value="{{ csrf_token() }}" />
|
||||
<button type="submit" class="button" name="delete">{{ delete_button }}</button>
|
||||
</form>
|
||||
{% endcall %}
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endmacro %}
|
||||
|
||||
{% macro banner_wrapper(type=None, with_tick=False, delete_button=None, subhead=None) %}
|
||||
{{ banner(caller()|safe, type=type, with_tick=with_tick, delete_button=delete_button, subhead=subhead) }}
|
||||
{% macro banner_wrapper(type=None, with_tick=False, delete_button=None, subhead=None, action=None) %}
|
||||
{{ banner(caller()|safe, type=type, with_tick=with_tick, delete_button=delete_button, subhead=subhead, action=action) }}
|
||||
{% endmacro %}
|
||||
|
||||
@@ -2,12 +2,21 @@
|
||||
{% from "components/textbox.html" import textbox %}
|
||||
{% from "components/page-footer.html" import page_footer %}
|
||||
{% from "components/form.html" import form_wrapper %}
|
||||
{% from "components/banner.html" import banner %}
|
||||
|
||||
{% block service_page_title %}
|
||||
{{ user.name or user.email_localpart }}
|
||||
{% endblock %}
|
||||
|
||||
{% block maincolumn_content %}
|
||||
{% if delete %}
|
||||
{{ banner(
|
||||
'Are you sure you want to remove {}?'.format(user.name),
|
||||
type='dangerous',
|
||||
delete_button='Yes, remove',
|
||||
action=url_for('.remove_user_from_service', service_id=current_service.id, user_id=user.id)
|
||||
) }}
|
||||
{% endif %}
|
||||
|
||||
<h1 class="heading-large">
|
||||
{{ user.name or user.email_localpart }}
|
||||
@@ -28,7 +37,7 @@
|
||||
|
||||
{{ page_footer(
|
||||
'Save',
|
||||
delete_link=url_for('.remove_user_from_service', service_id=current_service.id, user_id=user.id) if user or None,
|
||||
delete_link=url_for('.edit_user_permissions', service_id=current_service.id, user_id=user.id, delete='yes'),
|
||||
delete_link_text='Remove user from service'
|
||||
) }}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user