mirror of
https://github.com/GSA/notifications-admin.git
synced 2025-12-09 22:53:27 -05:00
Add a get view and template that enable changing team members email
This commit is contained in:
@@ -9,7 +9,7 @@ from app import (
|
||||
user_api_client,
|
||||
)
|
||||
from app.main import main
|
||||
from app.main.forms import InviteUserForm, PermissionsForm, SearchUsersForm
|
||||
from app.main.forms import InviteUserForm, PermissionsForm, SearchUsersForm, ChangeEmailForm
|
||||
from app.models.user import permissions
|
||||
from app.utils import user_has_permissions
|
||||
|
||||
@@ -122,6 +122,22 @@ def remove_user_from_service(service_id, user_id):
|
||||
)
|
||||
|
||||
|
||||
@main.route("/services/<service_id>/users/<user_id>/edit-email", methods=['GET'])
|
||||
@login_required
|
||||
@user_has_permissions('manage_service')
|
||||
def edit_user_email(service_id, user_id):
|
||||
user = user_api_client.get_user(user_id)
|
||||
user_email = user.email_address
|
||||
form = ChangeEmailForm(user_api_client.is_email_already_in_use(user_email), email_address=user_email)
|
||||
|
||||
return render_template(
|
||||
'views/manage-users/edit-user-email.html',
|
||||
user=user,
|
||||
form=form,
|
||||
service_id=service_id
|
||||
)
|
||||
|
||||
|
||||
@main.route("/services/<service_id>/cancel-invited-user/<invited_user_id>", methods=['GET'])
|
||||
@user_has_permissions('manage_service')
|
||||
def cancel_invited_user(service_id, invited_user_id):
|
||||
|
||||
@@ -64,6 +64,8 @@
|
||||
<a href="{{ url_for('.cancel_invited_user', service_id=current_service.id, invited_user_id=user.id)}}">Cancel invitation</a>
|
||||
{% elif user.state == 'active' and current_user.id != user.id %}
|
||||
<a href="{{ url_for('.edit_user_permissions', service_id=current_service.id, user_id=user.id)}}">Edit permissions</a>
|
||||
<br>
|
||||
<a href="{{ url_for('.edit_user_email', service_id=current_service.id, user_id=user.id)}}">Edit user email</a>
|
||||
{% endif %}
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
27
app/templates/views/manage-users/edit-user-email.html
Normal file
27
app/templates/views/manage-users/edit-user-email.html
Normal file
@@ -0,0 +1,27 @@
|
||||
{% extends "withoutnav_template.html" %}
|
||||
{% from "components/textbox.html" import textbox %}
|
||||
{% from "components/page-footer.html" import page_footer %}
|
||||
{% from "components/form.html" import form_wrapper %}
|
||||
|
||||
{% block per_page_title %}
|
||||
Edit user email
|
||||
{% endblock %}
|
||||
|
||||
{% block maincolumn_content %}
|
||||
|
||||
<h1 class="heading-large">Edit user email</h1>
|
||||
<p id="user_name">for {{ user.name }}</p>
|
||||
<div class="grid-row">
|
||||
<div class="column-three-quarters">
|
||||
{% call form_wrapper() %}
|
||||
{{ textbox(form.email_address) }}
|
||||
{{ page_footer(
|
||||
'Save',
|
||||
back_link=url_for('.manage_users', service_id=service_id),
|
||||
back_link_text="Back to team members"
|
||||
) }}
|
||||
{% endcall %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% endblock %}
|
||||
@@ -769,3 +769,23 @@ def test_can_invite_user_as_platform_admin(
|
||||
response = logged_in_client.get(url_for('main.manage_users', service_id=service_one['id']))
|
||||
resp_text = response.get_data(as_text=True)
|
||||
assert url_for('.invite_user', service_id=service_one['id']) in resp_text
|
||||
|
||||
|
||||
def test_edit_user_email_page(
|
||||
client_request,
|
||||
active_user_with_permissions,
|
||||
service_one,
|
||||
mocker
|
||||
):
|
||||
user = active_user_with_permissions
|
||||
test_user = mocker.patch('app.user_api_client.get_user', return_value=user)
|
||||
|
||||
page = client_request.get(
|
||||
'main.edit_user_email',
|
||||
service_id=service_one['id'],
|
||||
user_id=test_user.id
|
||||
)
|
||||
|
||||
assert page.find('h1').text == "Edit user email"
|
||||
assert page.select('p[id=user_name]')[0].text == "for " + user.name
|
||||
assert page.select('input[type=email]')[0].attrs["value"] == user.email_address
|
||||
|
||||
Reference in New Issue
Block a user