Skip to content

Commit a9ce4bf

Browse files
authored
Merge pull request #403 from DataIntegrationGroup/BDMS-471-472-473
BDMS-471-472-473
2 parents 66aa7ef + 7db3eb8 commit a9ce4bf

1 file changed

Lines changed: 12 additions & 17 deletions

File tree

db/initialization.py

Lines changed: 12 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -23,22 +23,6 @@
2323
"""
2424
)
2525

26-
GRANT_MEMBER_SQL = text(
27-
"""
28-
DO $$
29-
DECLARE
30-
username text := :grantee;
31-
BEGIN
32-
IF username IS NULL OR username = '' THEN
33-
RETURN;
34-
END IF;
35-
IF EXISTS (SELECT 1 FROM pg_roles WHERE rolname = username) THEN
36-
EXECUTE format('GRANT app_read TO %I', username);
37-
END IF;
38-
END $$;
39-
"""
40-
)
41-
4226

4327
def _parse_app_read_members() -> list[str]:
4428
members = os.environ.get("APP_READ_MEMBERS", "")
@@ -53,7 +37,18 @@ def grant_app_read_members(executor: Session | Connection | None) -> None:
5337
if not members:
5438
return
5539
for member in members:
56-
executor.execute(GRANT_MEMBER_SQL, {"grantee": member})
40+
safe_member = member.replace("'", "''")
41+
stmt = text(
42+
f"""
43+
DO $$
44+
BEGIN
45+
IF EXISTS (SELECT 1 FROM pg_roles WHERE rolname = '{safe_member}') THEN
46+
EXECUTE 'GRANT app_read TO {safe_member}';
47+
END IF;
48+
END $$;
49+
"""
50+
)
51+
executor.execute(stmt)
5752

5853

5954
def recreate_public_schema(session: Session) -> None:

0 commit comments

Comments
 (0)