mirror of
https://github.com/GSA/notifications-api.git
synced 2025-12-17 10:42:25 -05:00
Update folder viewing permissions when updating a folder
This commit is contained in:
@@ -12,6 +12,7 @@ from app.dao.template_folder_dao import (
|
||||
)
|
||||
from app.dao.services_dao import dao_fetch_service_by_id
|
||||
from app.dao.service_user_dao import dao_get_active_service_users
|
||||
from app.dao.service_user_dao import dao_get_service_user
|
||||
from app.errors import InvalidRequest, register_errors
|
||||
from app.models import TemplateFolder
|
||||
from app.template_folder.template_folder_schema import (
|
||||
@@ -78,6 +79,8 @@ def update_template_folder(service_id, template_folder_id):
|
||||
|
||||
template_folder = dao_get_template_folder_by_id_and_service_id(template_folder_id, service_id)
|
||||
template_folder.name = data['name']
|
||||
if 'users_with_permission' in data:
|
||||
template_folder.users = [dao_get_service_user(user_id, service_id) for user_id in data['users_with_permission']]
|
||||
|
||||
dao_update_template_folder(template_folder)
|
||||
|
||||
|
||||
@@ -17,6 +17,7 @@ post_update_template_folder_schema = {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"name": {"type": "string", "minLength": 1},
|
||||
"users_with_permission": {"type": "array", "items": uuid}
|
||||
},
|
||||
"required": ["name"]
|
||||
}
|
||||
|
||||
@@ -155,7 +155,7 @@ def test_create_template_folder_fails_if_parent_id_from_different_service(admin_
|
||||
assert resp['message'] == 'parent_id not found'
|
||||
|
||||
|
||||
def test_update_template_folder(admin_request, sample_service):
|
||||
def test_update_template_folder_name(admin_request, sample_service):
|
||||
existing_folder = create_template_folder(sample_service)
|
||||
|
||||
resp = admin_request.post(
|
||||
@@ -171,6 +171,24 @@ def test_update_template_folder(admin_request, sample_service):
|
||||
assert existing_folder.name == 'bar'
|
||||
|
||||
|
||||
def test_update_template_folder_users(admin_request, sample_service):
|
||||
existing_folder = create_template_folder(sample_service)
|
||||
user = create_user()
|
||||
assert len(existing_folder.users) == 0
|
||||
resp = admin_request.post(
|
||||
'template_folder.update_template_folder',
|
||||
service_id=sample_service.id,
|
||||
template_folder_id=existing_folder.id,
|
||||
_data={
|
||||
'name': 'foo',
|
||||
'users_with_permission': [str(user.id)]
|
||||
}
|
||||
)
|
||||
|
||||
assert resp['data']['users_with_permission'] == [str(user.id)]
|
||||
assert len(existing_folder.users) == 1
|
||||
|
||||
|
||||
@pytest.mark.parametrize('data, err', [
|
||||
({}, 'name is a required property'),
|
||||
({'name': None}, 'name None is not of type string'),
|
||||
|
||||
Reference in New Issue
Block a user