From faff75ff04eade25cbad4a413762c33922e1502b Mon Sep 17 00:00:00 2001 From: mgrochalskisoldevelo Date: Wed, 8 Jan 2025 11:10:17 +0100 Subject: [PATCH 1/3] Add rights for managing dashboard reports and report categories --- gradle.properties | 2 +- ...0108095419176__add_rights_for_managing_reports.sql | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) create mode 100755 src/main/resources/db/migration/20250108095419176__add_rights_for_managing_reports.sql diff --git a/gradle.properties b/gradle.properties index e1a18f38..05fc1c34 100644 --- a/gradle.properties +++ b/gradle.properties @@ -9,4 +9,4 @@ serviceName=openlmis-referencedata # Only a Release Manager should update this # See https://openlmis.atlassian.net/wiki/display/OP/Rolling+a+Release ###################################################################### -serviceVersion=15.3.0-SNAPSHOT +serviceVersion=15.2.9-SNAPSHOT diff --git a/src/main/resources/db/migration/20250108095419176__add_rights_for_managing_reports.sql b/src/main/resources/db/migration/20250108095419176__add_rights_for_managing_reports.sql new file mode 100755 index 00000000..3ba87252 --- /dev/null +++ b/src/main/resources/db/migration/20250108095419176__add_rights_for_managing_reports.sql @@ -0,0 +1,11 @@ +INSERT INTO referencedata.rights (id, description, name, type) +SELECT '88f87966-9c78-4cc5-a34a-fdd01b3bc42d', NULL, 'REPORTS_MANAGE', 'REPORTS' +WHERE NOT EXISTS ( + SELECT 1 FROM referencedata.rights WHERE name = 'REPORTS_MANAGE' +); + +INSERT INTO referencedata.rights (id, description, name, type) +SELECT '353f6664-439e-4e08-93ac-ba853d8f22a8', NULL, 'REPORT_CATEGORIES_MANAGE', 'REPORTS' +WHERE NOT EXISTS ( + SELECT 1 FROM referencedata.rights WHERE name = 'REPORT_CATEGORIES_MANAGE' +); From 0c65b76d079c2e0fa82efeaff9471908e62a4df2 Mon Sep 17 00:00:00 2001 From: mgrochalskisoldevelo Date: Wed, 8 Jan 2025 11:35:58 +0100 Subject: [PATCH 2/3] Change rights type to GENERAL_ADMIN and assigned them to the admin role --- ...19176__add_rights_for_managing_reports.sql | 22 +++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/src/main/resources/db/migration/20250108095419176__add_rights_for_managing_reports.sql b/src/main/resources/db/migration/20250108095419176__add_rights_for_managing_reports.sql index 3ba87252..9d255d21 100755 --- a/src/main/resources/db/migration/20250108095419176__add_rights_for_managing_reports.sql +++ b/src/main/resources/db/migration/20250108095419176__add_rights_for_managing_reports.sql @@ -1,11 +1,29 @@ INSERT INTO referencedata.rights (id, description, name, type) -SELECT '88f87966-9c78-4cc5-a34a-fdd01b3bc42d', NULL, 'REPORTS_MANAGE', 'REPORTS' +SELECT '88f87966-9c78-4cc5-a34a-fdd01b3bc42d', NULL, 'REPORTS_MANAGE', 'GENERAL_ADMIN' WHERE NOT EXISTS ( SELECT 1 FROM referencedata.rights WHERE name = 'REPORTS_MANAGE' ); INSERT INTO referencedata.rights (id, description, name, type) -SELECT '353f6664-439e-4e08-93ac-ba853d8f22a8', NULL, 'REPORT_CATEGORIES_MANAGE', 'REPORTS' +SELECT '353f6664-439e-4e08-93ac-ba853d8f22a8', NULL, 'REPORT_CATEGORIES_MANAGE', 'GENERAL_ADMIN' WHERE NOT EXISTS ( SELECT 1 FROM referencedata.rights WHERE name = 'REPORT_CATEGORIES_MANAGE' ); + +INSERT INTO referencedata.role_rights (roleid, rightid) +SELECT 'a439c5de-b8aa-11e6-80f5-76304dec7eb7', '88f87966-9c78-4cc5-a34a-fdd01b3bc42d' +WHERE NOT EXISTS ( + SELECT 1 + FROM referencedata.role_rights + WHERE roleid = 'a439c5de-b8aa-11e6-80f5-76304dec7eb7' + AND rightid = '88f87966-9c78-4cc5-a34a-fdd01b3bc42d' +); + +INSERT INTO referencedata.role_rights (roleid, rightid) +SELECT 'a439c5de-b8aa-11e6-80f5-76304dec7eb7', '353f6664-439e-4e08-93ac-ba853d8f22a8' +WHERE NOT EXISTS ( + SELECT 1 + FROM referencedata.role_rights + WHERE roleid = 'a439c5de-b8aa-11e6-80f5-76304dec7eb7' + AND rightid = '353f6664-439e-4e08-93ac-ba853d8f22a8' +); From 70ddeccd052ad91c02bb9a0ddebed98d5b798fdc Mon Sep 17 00:00:00 2001 From: mgrochalskisoldevelo Date: Wed, 8 Jan 2025 11:58:13 +0100 Subject: [PATCH 3/3] Refactor query --- ...19176__add_rights_for_managing_reports.sql | 47 +++++++++---------- 1 file changed, 23 insertions(+), 24 deletions(-) diff --git a/src/main/resources/db/migration/20250108095419176__add_rights_for_managing_reports.sql b/src/main/resources/db/migration/20250108095419176__add_rights_for_managing_reports.sql index 9d255d21..ca18c3c8 100755 --- a/src/main/resources/db/migration/20250108095419176__add_rights_for_managing_reports.sql +++ b/src/main/resources/db/migration/20250108095419176__add_rights_for_managing_reports.sql @@ -1,29 +1,28 @@ -INSERT INTO referencedata.rights (id, description, name, type) -SELECT '88f87966-9c78-4cc5-a34a-fdd01b3bc42d', NULL, 'REPORTS_MANAGE', 'GENERAL_ADMIN' -WHERE NOT EXISTS ( - SELECT 1 FROM referencedata.rights WHERE name = 'REPORTS_MANAGE' -); - -INSERT INTO referencedata.rights (id, description, name, type) -SELECT '353f6664-439e-4e08-93ac-ba853d8f22a8', NULL, 'REPORT_CATEGORIES_MANAGE', 'GENERAL_ADMIN' -WHERE NOT EXISTS ( - SELECT 1 FROM referencedata.rights WHERE name = 'REPORT_CATEGORIES_MANAGE' -); - -INSERT INTO referencedata.role_rights (roleid, rightid) -SELECT 'a439c5de-b8aa-11e6-80f5-76304dec7eb7', '88f87966-9c78-4cc5-a34a-fdd01b3bc42d' -WHERE NOT EXISTS ( - SELECT 1 - FROM referencedata.role_rights - WHERE roleid = 'a439c5de-b8aa-11e6-80f5-76304dec7eb7' - AND rightid = '88f87966-9c78-4cc5-a34a-fdd01b3bc42d' -); - +WITH existing_right AS ( + SELECT id, name + FROM referencedata.rights + WHERE name IN ('REPORTS_MANAGE', 'REPORT_CATEGORIES_MANAGE') +), +inserted_right AS ( + INSERT INTO referencedata.rights (id, description, name, type) + SELECT CAST('88f87966-9c78-4cc5-a34a-fdd01b3bc42d' AS UUID), NULL, 'REPORTS_MANAGE', 'GENERAL_ADMIN' + WHERE NOT EXISTS (SELECT 1 FROM existing_right WHERE name = 'REPORTS_MANAGE') + UNION ALL + SELECT CAST('353f6664-439e-4e08-93ac-ba853d8f22a8' AS UUID), NULL, 'REPORT_CATEGORIES_MANAGE', 'GENERAL_ADMIN' + WHERE NOT EXISTS (SELECT 1 FROM existing_right WHERE name = 'REPORT_CATEGORIES_MANAGE') + RETURNING id, name +), +all_rights AS ( + SELECT * FROM existing_right + UNION ALL + SELECT * FROM inserted_right +) INSERT INTO referencedata.role_rights (roleid, rightid) -SELECT 'a439c5de-b8aa-11e6-80f5-76304dec7eb7', '353f6664-439e-4e08-93ac-ba853d8f22a8' +SELECT CAST('a439c5de-b8aa-11e6-80f5-76304dec7eb7' AS UUID), id +FROM all_rights WHERE NOT EXISTS ( SELECT 1 FROM referencedata.role_rights - WHERE roleid = 'a439c5de-b8aa-11e6-80f5-76304dec7eb7' - AND rightid = '353f6664-439e-4e08-93ac-ba853d8f22a8' + WHERE roleid = CAST('a439c5de-b8aa-11e6-80f5-76304dec7eb7' AS UUID) + AND rightid = all_rights.id );