From 148daa23e155508f3e97f9880caafc6c1dd02579 Mon Sep 17 00:00:00 2001 From: CREDO23 Date: Mon, 2 Feb 2026 14:22:18 +0200 Subject: [PATCH] feat: add migration for public_sharing permissions --- ...add_public_sharing_permissions_to_roles.py | 66 +++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 surfsense_backend/alembic/versions/86_add_public_sharing_permissions_to_roles.py diff --git a/surfsense_backend/alembic/versions/86_add_public_sharing_permissions_to_roles.py b/surfsense_backend/alembic/versions/86_add_public_sharing_permissions_to_roles.py new file mode 100644 index 000000000..ea18b6fd3 --- /dev/null +++ b/surfsense_backend/alembic/versions/86_add_public_sharing_permissions_to_roles.py @@ -0,0 +1,66 @@ +"""Add public_sharing permissions to existing roles + +Revision ID: 86 +Revises: 85 +Create Date: 2026-02-02 + +""" + +from sqlalchemy import text + +from alembic import op + +revision = "86" +down_revision = "85" +branch_labels = None +depends_on = None + + +def upgrade(): + connection = op.get_bind() + + connection.execute( + text( + """ + UPDATE search_space_roles + SET permissions = array_append(permissions, 'public_sharing:view') + WHERE name IN ('Editor', 'Viewer') + AND NOT ('public_sharing:view' = ANY(permissions)) + """ + ) + ) + + connection.execute( + text( + """ + UPDATE search_space_roles + SET permissions = array_append(permissions, 'public_sharing:create') + WHERE name = 'Editor' + AND NOT ('public_sharing:create' = ANY(permissions)) + """ + ) + ) + + +def downgrade(): + connection = op.get_bind() + + connection.execute( + text( + """ + UPDATE search_space_roles + SET permissions = array_remove(permissions, 'public_sharing:view') + WHERE name IN ('Editor', 'Viewer') + """ + ) + ) + + connection.execute( + text( + """ + UPDATE search_space_roles + SET permissions = array_remove(permissions, 'public_sharing:create') + WHERE name = 'Editor' + """ + ) + )