diff --git a/app/dao/permissions_dao.py b/app/dao/permissions_dao.py index 67015b75c..628a11d9a 100644 --- a/app/dao/permissions_dao.py +++ b/app/dao/permissions_dao.py @@ -8,8 +8,16 @@ manage_service = 'manage_service' send_messages = 'send_messages' manage_api_keys = 'manage_api_keys' manage_templates = 'manage_templates' +manage_team = 'manage_team' +view_activity = 'view_activity' # Default permissions for a service -default_service_permissions = [manage_service, send_messages, manage_api_keys, manage_templates] +default_service_permissions = [ + manage_service, + send_messages, + manage_api_keys, + manage_templates, + manage_team, + view_activity] class PermissionDAO(DAOClass): diff --git a/migrations/versions/0031_add_manage_team_permission.py b/migrations/versions/0031_add_manage_team_permission.py new file mode 100644 index 000000000..05413da45 --- /dev/null +++ b/migrations/versions/0031_add_manage_team_permission.py @@ -0,0 +1,41 @@ +"""empty message + +Revision ID: 0031_add_manage_team_permission +Revises: 0030_add_template_permission +Create Date: 2016-02-26 10:33:20.536362 + +""" + +# revision identifiers, used by Alembic. +revision = '0031_add_manage_team_permission' +down_revision = '0030_add_template_permission' +import uuid +from datetime import datetime +from alembic import op +import sqlalchemy as sa +from sqlalchemy.dialects import postgresql + +def upgrade(): + ### commands auto generated by Alembic - please adjust! ### + conn = op.get_bind() + user_services = conn.execute("SELECT * FROM user_to_service").fetchall() + for entry in user_services: + id_ = uuid.uuid4() + created_at = datetime.now().isoformat().replace('T', ' ') + conn.execute(( + "INSERT INTO permissions (id, user_id, service_id, permission, created_at)" + " VALUES ('{}', '{}', '{}', 'manage_team', '{}')").format(id_, entry[0], entry[1], created_at)) + id_ = uuid.uuid4() + conn.execute(( + "INSERT INTO permissions (id, user_id, service_id, permission, created_at)" + " VALUES ('{}', '{}', '{}', 'view_activity', '{}')").format(id_, entry[0], entry[1], created_at)) + ### end Alembic commands ### + + +def downgrade(): + ### commands auto generated by Alembic - please adjust! ### + conn = op.get_bind() + conn.execute("DELETE FROM permissions where permission='manage_team'") + conn.execute("DELETE FROM permissions where permission='view_activity'") + + ### end Alembic commands ### \ No newline at end of file diff --git a/tests/app/user/test_rest.py b/tests/app/user/test_rest.py index b64b9d0e2..d098ec403 100644 --- a/tests/app/user/test_rest.py +++ b/tests/app/user/test_rest.py @@ -20,7 +20,9 @@ def test_get_user_list(notify_api, notify_db, notify_db_session, sample_service) json_resp = json.loads(response.get_data(as_text=True)) assert len(json_resp['data']) == 1 sample_user = sample_service.users[0] - expected_permissions = ['manage_service', 'send_messages', 'manage_api_keys', 'manage_templates'] + expected_permissions = [ + 'manage_service', 'send_messages', 'manage_api_keys', 'manage_templates', + 'manage_team', 'view_activity'] fetched = json_resp['data'][0] assert sample_user.id == fetched['id'] @@ -46,7 +48,9 @@ def test_get_user(notify_api, notify_db, notify_db_session, sample_service): assert resp.status_code == 200 json_resp = json.loads(resp.get_data(as_text=True)) - expected_permissions = ['manage_service', 'send_messages', 'manage_api_keys', 'manage_templates'] + expected_permissions = [ + 'manage_service', 'send_messages', 'manage_api_keys', 'manage_templates', + 'manage_team', 'view_activity'] fetched = json_resp['data'] assert sample_user.id == fetched['id'] @@ -179,7 +183,9 @@ def test_put_user(notify_api, notify_db, notify_db_session, sample_service): assert User.query.count() == 1 json_resp = json.loads(resp.get_data(as_text=True)) assert json_resp['data']['email_address'] == new_email - expected_permissions = ['manage_service', 'send_messages', 'manage_api_keys', 'manage_templates'] + expected_permissions = [ + 'manage_service', 'send_messages', 'manage_api_keys', 'manage_templates', + 'manage_team', 'view_activity'] fetched = json_resp['data'] assert sample_user.id == fetched['id'] @@ -271,7 +277,9 @@ def test_get_user_by_email(notify_api, notify_db, notify_db_session, sample_serv assert resp.status_code == 200 json_resp = json.loads(resp.get_data(as_text=True)) - expected_permissions = ['manage_service', 'send_messages', 'manage_api_keys', 'manage_templates'] + expected_permissions = [ + 'manage_service', 'send_messages', 'manage_api_keys', 'manage_templates', + 'manage_team', 'view_activity'] fetched = json_resp['data'] assert sample_user.id == fetched['id']