mirror of
https://github.com/GSA/notifications-api.git
synced 2026-01-30 14:31:57 -05:00
Merge pull request #2393 from alphagov/create-folder-with-user-permissions
Set user permissions when creating a folder
This commit is contained in:
@@ -1,13 +1,22 @@
|
||||
|
||||
from app import db
|
||||
from app.dao.dao_utils import transactional
|
||||
from app.models import ServiceUser
|
||||
from app.models import ServiceUser, User
|
||||
|
||||
|
||||
def dao_get_service_user(user_id, service_id):
|
||||
return ServiceUser.query.filter_by(user_id=user_id, service_id=service_id).one()
|
||||
|
||||
|
||||
def dao_get_active_service_users(service_id):
|
||||
query = ServiceUser.query.join(ServiceUser.user).filter(
|
||||
ServiceUser.service_id == service_id,
|
||||
User.state == 'active'
|
||||
)
|
||||
|
||||
return query.all()
|
||||
|
||||
|
||||
@transactional
|
||||
def dao_update_service_user(service_user):
|
||||
db.session.add(service_user)
|
||||
|
||||
@@ -11,6 +11,7 @@ from app.dao.template_folder_dao import (
|
||||
dao_delete_template_folder
|
||||
)
|
||||
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.errors import InvalidRequest, register_errors
|
||||
from app.models import TemplateFolder
|
||||
from app.template_folder.template_folder_schema import (
|
||||
@@ -49,17 +50,19 @@ def create_template_folder(service_id):
|
||||
data = request.get_json()
|
||||
|
||||
validate(data, post_create_template_folder_schema)
|
||||
|
||||
if data.get('parent_id') is not None:
|
||||
try:
|
||||
dao_get_template_folder_by_id_and_service_id(data['parent_id'], service_id)
|
||||
parent_folder = dao_get_template_folder_by_id_and_service_id(data['parent_id'], service_id)
|
||||
users_with_permission = parent_folder.users
|
||||
except NoResultFound:
|
||||
raise InvalidRequest("parent_id not found", status_code=400)
|
||||
|
||||
else:
|
||||
users_with_permission = dao_get_active_service_users(service_id)
|
||||
template_folder = TemplateFolder(
|
||||
service_id=service_id,
|
||||
name=data['name'].strip(),
|
||||
parent_id=data['parent_id']
|
||||
parent_id=data['parent_id'],
|
||||
users=users_with_permission,
|
||||
)
|
||||
|
||||
dao_create_template_folder(template_folder)
|
||||
|
||||
Reference in New Issue
Block a user