Update folder viewing permissions when updating a folder

This commit is contained in:
Pea Tyczynska
2019-03-15 17:22:45 +00:00
parent 6f4b415426
commit dabcbc20db
3 changed files with 23 additions and 1 deletions

View File

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

View File

@@ -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"]
}

View File

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