diff --git a/app/dao/permissions_dao.py b/app/dao/permissions_dao.py index 26a07635d..4b3a3632a 100644 --- a/app/dao/permissions_dao.py +++ b/app/dao/permissions_dao.py @@ -8,7 +8,9 @@ from app.models import ( MANAGE_SERVICE, SEND_MESSAGES, MANAGE_API_KEYS, - MANAGE_TEMPLATES) + MANAGE_TEMPLATES, + MANAGE_TEAM, + VIEW_ACTIVITY) # Default permissions for a service @@ -16,7 +18,10 @@ default_service_permissions = [ MANAGE_SERVICE, SEND_MESSAGES, MANAGE_API_KEYS, - MANAGE_TEMPLATES] + MANAGE_TEMPLATES, + MANAGE_TEAM, + VIEW_ACTIVITY] + class PermissionDAO(DAOClass): diff --git a/tests/app/conftest.py b/tests/app/conftest.py index 1c0a2657c..251316adf 100644 --- a/tests/app/conftest.py +++ b/tests/app/conftest.py @@ -324,7 +324,7 @@ def sample_permission(notify_db, notify_db_session, service=None, user=None, - permission="sample permission"): + permission="manage_service"): if user is None: user = sample_user(notify_db, notify_db_session) data = { @@ -333,9 +333,14 @@ def sample_permission(notify_db, } if service: data['service'] = service - p_model = Permission(**data) - db.session.add(p_model) - db.session.commit() + p_model = Permission.query.filter_by( + user=user, + service=service, + permission=permission).first() + if not p_model: + p_model = Permission(**data) + db.session.add(p_model) + db.session.commit() return p_model @@ -344,7 +349,7 @@ def sample_service_permission(notify_db, notify_db_session, service=None, user=None, - permission="sample permission"): + permission="manage_service"): if user is None: user = sample_user(notify_db, notify_db_session) if service is None: @@ -354,7 +359,12 @@ def sample_service_permission(notify_db, 'service': service, 'permission': permission } - p_model = Permission(**data) - db.session.add(p_model) - db.session.commit() + p_model = Permission.query.filter_by( + user=user, + service=service, + permission=permission).first() + if not p_model: + p_model = Permission(**data) + db.session.add(p_model) + db.session.commit() return p_model diff --git a/tests/app/permissions/test_rest.py b/tests/app/permissions/test_rest.py index c5ad41c5c..79fadd20c 100644 --- a/tests/app/permissions/test_rest.py +++ b/tests/app/permissions/test_rest.py @@ -1,5 +1,6 @@ import json from flask import url_for +from app.models import Permission from tests import create_authorization_header from ..conftest import sample_permission as create_permission @@ -39,12 +40,6 @@ def test_get_permission_filter(notify_api, """ with notify_api.test_request_context(): with notify_api.test_client() as client: - another_permission = create_permission( - notify_db, - notify_db_session, - user=sample_user, - service=sample_service, - permission="another permission") header = create_authorization_header( path=url_for('permission.get_permissions'), method='GET') @@ -53,6 +48,8 @@ def test_get_permission_filter(notify_api, headers=[header]) assert response.status_code == 200 json_resp = json.loads(response.get_data(as_text=True)) + another_permission = Permission.query.filter_by( + service_id=str(sample_service.id)).first() expected = { "permission": another_permission.permission, "user": sample_user.id,