mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-09-08 08:28:15 -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 import main
|
||||||
from app.main.forms import (
|
from app.main.forms import (
|
||||||
ChangeEmailForm,
|
ChangeEmailForm,
|
||||||
|
ChangeMobileNumberForm,
|
||||||
InviteUserForm,
|
InviteUserForm,
|
||||||
PermissionsForm,
|
PermissionsForm,
|
||||||
SearchUsersForm,
|
SearchUsersForm,
|
||||||
ChangeMobileNumberForm
|
|
||||||
)
|
)
|
||||||
from app.models.user import permissions
|
from app.models.user import permissions
|
||||||
from app.utils import redact_mobile_number, user_has_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):
|
def confirm_edit_user_mobile_number(service_id, user_id):
|
||||||
user = user_api_client.get_user(user_id)
|
user = user_api_client.get_user(user_id)
|
||||||
new_number = session['team_member_mobile_change']
|
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(
|
return render_template(
|
||||||
'views/manage-users/confirm-edit-user-mobile-number.html',
|
'views/manage-users/confirm-edit-user-mobile-number.html',
|
||||||
|
|||||||
@@ -136,6 +136,7 @@ class HeaderNavigation(Navigation):
|
|||||||
'choose_template_to_copy',
|
'choose_template_to_copy',
|
||||||
'confirm_edit_organisation_name',
|
'confirm_edit_organisation_name',
|
||||||
'confirm_edit_user_email',
|
'confirm_edit_user_email',
|
||||||
|
'confirm_edit_user_mobile_number',
|
||||||
'confirm_redact_template',
|
'confirm_redact_template',
|
||||||
'conversation',
|
'conversation',
|
||||||
'conversation_reply',
|
'conversation_reply',
|
||||||
@@ -159,7 +160,7 @@ class HeaderNavigation(Navigation):
|
|||||||
'edit_template_postage',
|
'edit_template_postage',
|
||||||
'edit_user_org_permissions',
|
'edit_user_org_permissions',
|
||||||
'edit_user_email',
|
'edit_user_email',
|
||||||
'edit_user_phone_number',
|
'edit_user_mobile_number',
|
||||||
'edit_user_permissions',
|
'edit_user_permissions',
|
||||||
'email_not_received',
|
'email_not_received',
|
||||||
'email_template',
|
'email_template',
|
||||||
@@ -328,8 +329,9 @@ class MainNavigation(Navigation):
|
|||||||
},
|
},
|
||||||
'team-members': {
|
'team-members': {
|
||||||
'confirm_edit_user_email',
|
'confirm_edit_user_email',
|
||||||
|
'confirm_edit_user_mobile_number',
|
||||||
'edit_user_email',
|
'edit_user_email',
|
||||||
'edit_user_phone_number',
|
'edit_user_mobile_number',
|
||||||
'edit_user_permissions',
|
'edit_user_permissions',
|
||||||
'invite_user',
|
'invite_user',
|
||||||
'manage_users',
|
'manage_users',
|
||||||
@@ -586,6 +588,7 @@ class CaseworkNavigation(Navigation):
|
|||||||
'clear_cache',
|
'clear_cache',
|
||||||
'confirm_edit_organisation_name',
|
'confirm_edit_organisation_name',
|
||||||
'confirm_edit_user_email',
|
'confirm_edit_user_email',
|
||||||
|
'confirm_edit_user_mobile_number',
|
||||||
'confirm_redact_template',
|
'confirm_redact_template',
|
||||||
'conversation',
|
'conversation',
|
||||||
'conversation_reply',
|
'conversation_reply',
|
||||||
@@ -611,7 +614,7 @@ class CaseworkNavigation(Navigation):
|
|||||||
'edit_service_template',
|
'edit_service_template',
|
||||||
'edit_template_postage',
|
'edit_template_postage',
|
||||||
'edit_user_email',
|
'edit_user_email',
|
||||||
'edit_user_phone_number',
|
'edit_user_mobile_number',
|
||||||
'edit_user_org_permissions',
|
'edit_user_org_permissions',
|
||||||
'edit_user_permissions',
|
'edit_user_permissions',
|
||||||
'email_branding',
|
'email_branding',
|
||||||
@@ -826,6 +829,7 @@ class OrgNavigation(Navigation):
|
|||||||
'choose_template_to_copy',
|
'choose_template_to_copy',
|
||||||
'clear_cache',
|
'clear_cache',
|
||||||
'confirm_edit_user_email',
|
'confirm_edit_user_email',
|
||||||
|
'confirm_edit_user_mobile_number',
|
||||||
'confirm_redact_template',
|
'confirm_redact_template',
|
||||||
'conversation',
|
'conversation',
|
||||||
'conversation_reply',
|
'conversation_reply',
|
||||||
@@ -850,7 +854,7 @@ class OrgNavigation(Navigation):
|
|||||||
'edit_service_template',
|
'edit_service_template',
|
||||||
'edit_template_postage',
|
'edit_template_postage',
|
||||||
'edit_user_email',
|
'edit_user_email',
|
||||||
'edit_user_phone_number',
|
'edit_user_mobile_number',
|
||||||
'edit_user_permissions',
|
'edit_user_permissions',
|
||||||
'email_branding',
|
'email_branding',
|
||||||
'email_not_received',
|
'email_not_received',
|
||||||
|
|||||||
@@ -1106,8 +1106,26 @@ def test_confirm_edit_user_mobile_number_page(
|
|||||||
assert 'Confirm' in response.get_data(as_text=True)
|
assert 'Confirm' in response.get_data(as_text=True)
|
||||||
|
|
||||||
|
|
||||||
def test_confirm_edit_user_mobile_number_changes_user_mobile_number():
|
def test_confirm_edit_user_mobile_number_changes_user_mobile_number(
|
||||||
pass
|
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():
|
def test_confirm_edit_user_mobile_number_with_no_permission_aborts():
|
||||||
|
|||||||
Reference in New Issue
Block a user