mirror of
https://github.com/GSA/notifications-api.git
synced 2026-02-05 02:41:14 -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.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_active_service_users
|
||||||
|
from app.dao.service_user_dao import dao_get_service_user
|
||||||
from app.errors import InvalidRequest, register_errors
|
from app.errors import InvalidRequest, register_errors
|
||||||
from app.models import TemplateFolder
|
from app.models import TemplateFolder
|
||||||
from app.template_folder.template_folder_schema import (
|
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 = dao_get_template_folder_by_id_and_service_id(template_folder_id, service_id)
|
||||||
template_folder.name = data['name']
|
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)
|
dao_update_template_folder(template_folder)
|
||||||
|
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ post_update_template_folder_schema = {
|
|||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
"name": {"type": "string", "minLength": 1},
|
"name": {"type": "string", "minLength": 1},
|
||||||
|
"users_with_permission": {"type": "array", "items": uuid}
|
||||||
},
|
},
|
||||||
"required": ["name"]
|
"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'
|
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)
|
existing_folder = create_template_folder(sample_service)
|
||||||
|
|
||||||
resp = admin_request.post(
|
resp = admin_request.post(
|
||||||
@@ -171,6 +171,24 @@ def test_update_template_folder(admin_request, sample_service):
|
|||||||
assert existing_folder.name == 'bar'
|
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', [
|
@pytest.mark.parametrize('data, err', [
|
||||||
({}, 'name is a required property'),
|
({}, 'name is a required property'),
|
||||||
({'name': None}, 'name None is not of type string'),
|
({'name': None}, 'name None is not of type string'),
|
||||||
|
|||||||
Reference in New Issue
Block a user