mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-09-05 16:38:26 -04:00
Send folders if inviting user for service without edit folder permissions
If a new user is being invited for a service which doesn't have edit folder permissions turned on, we want to send all folders for that service to api.
This commit is contained in:
@@ -58,6 +58,11 @@ def invite_user(service_id):
|
|||||||
form.login_authentication.data = 'sms_auth'
|
form.login_authentication.data = 'sms_auth'
|
||||||
|
|
||||||
if form.validate_on_submit():
|
if form.validate_on_submit():
|
||||||
|
if current_service.has_permission('edit_folder_permissions'):
|
||||||
|
folder_permissions = form.folder_permissions.data
|
||||||
|
else:
|
||||||
|
folder_permissions = list(current_service.all_template_folder_ids)
|
||||||
|
|
||||||
email_address = form.email_address.data
|
email_address = form.email_address.data
|
||||||
invited_user = invite_api_client.create_invite(
|
invited_user = invite_api_client.create_invite(
|
||||||
current_user.id,
|
current_user.id,
|
||||||
@@ -65,10 +70,7 @@ def invite_user(service_id):
|
|||||||
email_address,
|
email_address,
|
||||||
form.permissions,
|
form.permissions,
|
||||||
form.login_authentication.data,
|
form.login_authentication.data,
|
||||||
folder_permissions=(
|
folder_permissions,
|
||||||
form.folder_permissions.data
|
|
||||||
if current_service.has_permission('edit_folder_permissions') else []
|
|
||||||
),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
flash('Invite sent to {}'.format(invited_user.email_address), 'default_with_tick')
|
flash('Invite sent to {}'.format(invited_user.email_address), 'default_with_tick')
|
||||||
|
|||||||
@@ -656,7 +656,7 @@ def test_invite_user(
|
|||||||
email_address,
|
email_address,
|
||||||
expected_permissions,
|
expected_permissions,
|
||||||
'sms_auth',
|
'sms_auth',
|
||||||
folder_permissions=sample_invite['folder_permissions'])
|
[])
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize('auth_type', [
|
@pytest.mark.parametrize('auth_type', [
|
||||||
@@ -711,7 +711,38 @@ def test_invite_user_with_email_auth_service(
|
|||||||
email_address,
|
email_address,
|
||||||
expected_permissions,
|
expected_permissions,
|
||||||
auth_type,
|
auth_type,
|
||||||
folder_permissions=sample_invite['folder_permissions'])
|
[])
|
||||||
|
|
||||||
|
|
||||||
|
def test_invite_user_sends_invite_with_all_folders_if_folder_permissions_not_enabled(
|
||||||
|
logged_in_client,
|
||||||
|
mocker,
|
||||||
|
mock_get_template_folders,
|
||||||
|
service_one
|
||||||
|
):
|
||||||
|
mocker.patch('app.invite_api_client.get_invites_for_service')
|
||||||
|
mocker.patch('app.user_api_client.get_users_for_service')
|
||||||
|
mock_get_template_folders.return_value = [
|
||||||
|
{'id': 'folder-id-1', 'name': 'folder_one', 'parent_id': None, 'users_with_permission': []},
|
||||||
|
{'id': 'folder-id-2', 'name': 'folder_two', 'parent_id': None, 'users_with_permission': []},
|
||||||
|
{'id': 'folder-id-3', 'name': 'folder_three', 'parent_id': 'folder-id-1', 'users_with_permission': []},
|
||||||
|
]
|
||||||
|
invite_mock = mocker.patch('app.invite_api_client.create_invite')
|
||||||
|
|
||||||
|
response = logged_in_client.post(
|
||||||
|
url_for('main.invite_user', service_id=service_one['id']),
|
||||||
|
data={'email_address': 'user@example.com',
|
||||||
|
'send_messages': 'y'},
|
||||||
|
follow_redirects=True
|
||||||
|
)
|
||||||
|
assert response.status_code == 200
|
||||||
|
|
||||||
|
folder_data_sent = invite_mock.call_args[0][-1]
|
||||||
|
|
||||||
|
assert len(folder_data_sent) == 3
|
||||||
|
assert 'folder-id-1' in folder_data_sent
|
||||||
|
assert 'folder-id-2' in folder_data_sent
|
||||||
|
assert 'folder-id-3' in folder_data_sent
|
||||||
|
|
||||||
|
|
||||||
def test_cancel_invited_user_cancels_user_invitations(
|
def test_cancel_invited_user_cancels_user_invitations(
|
||||||
|
|||||||
Reference in New Issue
Block a user