mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-07-09 19:04:33 -04:00
Change team member's mobile number upon confirmation
Also add edit user mobile number urls to navigation exceptions
This commit is contained in:
@@ -19,10 +19,10 @@ from app import (
|
||||
from app.main import main
|
||||
from app.main.forms import (
|
||||
ChangeEmailForm,
|
||||
ChangeMobileNumberForm,
|
||||
InviteUserForm,
|
||||
PermissionsForm,
|
||||
SearchUsersForm,
|
||||
ChangeMobileNumberForm
|
||||
)
|
||||
from app.models.user import permissions
|
||||
from app.utils import redact_mobile_number, user_has_permissions
|
||||
@@ -231,6 +231,22 @@ def edit_user_mobile_number(service_id, user_id):
|
||||
def confirm_edit_user_mobile_number(service_id, user_id):
|
||||
user = user_api_client.get_user(user_id)
|
||||
new_number = session['team_member_mobile_change']
|
||||
if request.method == 'POST':
|
||||
try:
|
||||
user_api_client.update_user_attribute(user_id, mobile_number=new_number)
|
||||
except HTTPError as e:
|
||||
if e.status_code == 403:
|
||||
flash("You don't have permission to edit users' mobile numbers for this service", 'info')
|
||||
return redirect(url_for(
|
||||
'.manage_users',
|
||||
service_id=service_id))
|
||||
else:
|
||||
abort(500, e)
|
||||
|
||||
return redirect(url_for(
|
||||
'.manage_users',
|
||||
service_id=service_id
|
||||
))
|
||||
|
||||
return render_template(
|
||||
'views/manage-users/confirm-edit-user-mobile-number.html',
|
||||
|
||||
@@ -136,6 +136,7 @@ class HeaderNavigation(Navigation):
|
||||
'choose_template_to_copy',
|
||||
'confirm_edit_organisation_name',
|
||||
'confirm_edit_user_email',
|
||||
'confirm_edit_user_mobile_number',
|
||||
'confirm_redact_template',
|
||||
'conversation',
|
||||
'conversation_reply',
|
||||
@@ -159,7 +160,7 @@ class HeaderNavigation(Navigation):
|
||||
'edit_template_postage',
|
||||
'edit_user_org_permissions',
|
||||
'edit_user_email',
|
||||
'edit_user_phone_number',
|
||||
'edit_user_mobile_number',
|
||||
'edit_user_permissions',
|
||||
'email_not_received',
|
||||
'email_template',
|
||||
@@ -328,8 +329,9 @@ class MainNavigation(Navigation):
|
||||
},
|
||||
'team-members': {
|
||||
'confirm_edit_user_email',
|
||||
'confirm_edit_user_mobile_number',
|
||||
'edit_user_email',
|
||||
'edit_user_phone_number',
|
||||
'edit_user_mobile_number',
|
||||
'edit_user_permissions',
|
||||
'invite_user',
|
||||
'manage_users',
|
||||
@@ -586,6 +588,7 @@ class CaseworkNavigation(Navigation):
|
||||
'clear_cache',
|
||||
'confirm_edit_organisation_name',
|
||||
'confirm_edit_user_email',
|
||||
'confirm_edit_user_mobile_number',
|
||||
'confirm_redact_template',
|
||||
'conversation',
|
||||
'conversation_reply',
|
||||
@@ -611,7 +614,7 @@ class CaseworkNavigation(Navigation):
|
||||
'edit_service_template',
|
||||
'edit_template_postage',
|
||||
'edit_user_email',
|
||||
'edit_user_phone_number',
|
||||
'edit_user_mobile_number',
|
||||
'edit_user_org_permissions',
|
||||
'edit_user_permissions',
|
||||
'email_branding',
|
||||
@@ -826,6 +829,7 @@ class OrgNavigation(Navigation):
|
||||
'choose_template_to_copy',
|
||||
'clear_cache',
|
||||
'confirm_edit_user_email',
|
||||
'confirm_edit_user_mobile_number',
|
||||
'confirm_redact_template',
|
||||
'conversation',
|
||||
'conversation_reply',
|
||||
@@ -850,7 +854,7 @@ class OrgNavigation(Navigation):
|
||||
'edit_service_template',
|
||||
'edit_template_postage',
|
||||
'edit_user_email',
|
||||
'edit_user_phone_number',
|
||||
'edit_user_mobile_number',
|
||||
'edit_user_permissions',
|
||||
'email_branding',
|
||||
'email_not_received',
|
||||
|
||||
@@ -1106,8 +1106,26 @@ def test_confirm_edit_user_mobile_number_page(
|
||||
assert 'Confirm' in response.get_data(as_text=True)
|
||||
|
||||
|
||||
def test_confirm_edit_user_mobile_number_changes_user_mobile_number():
|
||||
pass
|
||||
def test_confirm_edit_user_mobile_number_changes_user_mobile_number(
|
||||
logged_in_client,
|
||||
active_user_with_permissions,
|
||||
service_one,
|
||||
mocker,
|
||||
mock_get_user,
|
||||
mock_update_user_attribute
|
||||
):
|
||||
new_number = '07554080636'
|
||||
with logged_in_client.session_transaction() as session:
|
||||
session['team_member_mobile_change'] = new_number
|
||||
response = logged_in_client.post(
|
||||
url_for(
|
||||
'main.confirm_edit_user_mobile_number',
|
||||
service_id=service_one['id'],
|
||||
user_id=active_user_with_permissions.id))
|
||||
assert response.status_code == 302
|
||||
assert response.location == url_for(
|
||||
'main.manage_users', service_id=service_one['id'], _external=True)
|
||||
mock_update_user_attribute.assert_called_once_with(active_user_with_permissions.id, mobile_number=new_number)
|
||||
|
||||
|
||||
def test_confirm_edit_user_mobile_number_with_no_permission_aborts():
|
||||
|
||||
Reference in New Issue
Block a user