Change team member's mobile number upon confirmation

Also add edit user mobile number urls to navigation exceptions
This commit is contained in:
Pea Tyczynska
2019-02-22 16:01:04 +00:00
parent 94b78a7649
commit f7e54b7f5b
3 changed files with 45 additions and 7 deletions

View File

@@ -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',

View File

@@ -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',

View File

@@ -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():