From d685c36410d8072d914cabdb504986bed61d36c3 Mon Sep 17 00:00:00 2001 From: John Woodlock Date: Wed, 7 Nov 2012 13:53:51 +0000 Subject: [PATCH] WIP mifosx-126 - rename report and data table permissions and add upgrade script --- ...e_any_Report_and_Datatable_permissions.sql | 31 +++++++++++++++++++ .../noncore/AdditionalFieldsServiceImpl.java | 2 +- .../noncore/ReadReportingServiceImpl.java | 2 +- .../noncore/ReadWriteNonCoreDataService.java | 4 +-- .../ReadWriteNonCoreDataServiceImpl.java | 2 +- .../mifosng/platform/user/domain/AppUser.java | 4 +-- 6 files changed, 38 insertions(+), 7 deletions(-) create mode 100644 mifosng-db/patches/patch-MIFOSX-126-Rename_any_Report_and_Datatable_permissions.sql diff --git a/mifosng-db/patches/patch-MIFOSX-126-Rename_any_Report_and_Datatable_permissions.sql b/mifosng-db/patches/patch-MIFOSX-126-Rename_any_Report_and_Datatable_permissions.sql new file mode 100644 index 000000000..ae831dab3 --- /dev/null +++ b/mifosng-db/patches/patch-MIFOSX-126-Rename_any_Report_and_Datatable_permissions.sql @@ -0,0 +1,31 @@ + +update m_permission p +join stretchy_report sr on p.code = concat('CAN_RUN_', sr.report_name) +set p.`code` = concat('READ_', sr.report_name), +p.default_description = concat('READ_', sr.report_name), +p.default_name = concat('READ_', sr.report_name); + +update m_permission p +join x_registered_table r on p.code = concat('CAN_READ_', r.registered_table_name) +set p.`code` = concat('READ_', r.registered_table_name), +p.default_description = concat('READ_', r.registered_table_name), +p.default_name = concat('READ_', r.registered_table_name); + +update m_permission p +join x_registered_table r on p.code = concat('CAN_UPDATE_', r.registered_table_name) +set p.`code` = concat('UPDATE_', r.registered_table_name), +p.default_description = concat('UPDATE_', r.registered_table_name), +p.default_name = concat('UPDATE_', r.registered_table_name); + +update m_permission p +join x_registered_table r on p.code = concat('CAN_CREATE_', r.registered_table_name) +set p.`code` = concat('CREATE_', r.registered_table_name), +p.default_description = concat('CREATE_', r.registered_table_name), +p.default_name = concat('CREATE_', r.registered_table_name); + +update m_permission p +join x_registered_table r on p.code = concat('CAN_DELETE_', r.registered_table_name) +set p.`code` = concat('DELETE_', r.registered_table_name), +p.default_description = concat('DELETE_', r.registered_table_name), +p.default_name = concat('DELETE_', r.registered_table_name); + diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/noncore/AdditionalFieldsServiceImpl.java b/mifosng-provider/src/main/java/org/mifosng/platform/noncore/AdditionalFieldsServiceImpl.java index 495661858..83c4f380c 100644 --- a/mifosng-provider/src/main/java/org/mifosng/platform/noncore/AdditionalFieldsServiceImpl.java +++ b/mifosng-provider/src/main/java/org/mifosng/platform/noncore/AdditionalFieldsServiceImpl.java @@ -64,7 +64,7 @@ public class AdditionalFieldsServiceImpl implements AdditionalFieldsService { + " left join m_permission p on p.id = rp.permission_id" + " where ur.appuser_id = " + context.authenticatedUser().getId() - + " and (p.code in ('ALL_FUNCTIONS', 'ALL_FUNCTIONS_READ') or p.code = concat('CAN_READ_', t.`name`, '_x', d.`name`))) " + + " and (p.code in ('ALL_FUNCTIONS', 'ALL_FUNCTIONS_READ') or p.code = concat('READ_', t.`name`, '_x', d.`name`))) " + andClause + " order by d.`name`"; sql = genericDataService.wrapSQL(sql); diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/noncore/ReadReportingServiceImpl.java b/mifosng-provider/src/main/java/org/mifosng/platform/noncore/ReadReportingServiceImpl.java index e3ad2f814..0ecebce5f 100644 --- a/mifosng-provider/src/main/java/org/mifosng/platform/noncore/ReadReportingServiceImpl.java +++ b/mifosng-provider/src/main/java/org/mifosng/platform/noncore/ReadReportingServiceImpl.java @@ -172,7 +172,7 @@ public class ReadReportingServiceImpl implements ReadReportingService { + " left join m_permission p on p.id = rp.permission_id" + " where ur.appuser_id = " + context.authenticatedUser().getId() - + " and (p.code in ('ALL_FUNCTIONS', 'ALL_FUNCTIONS_READ') or p.code = concat('CAN_RUN_', r.report_name))) " + + " and (p.code in ('ALL_FUNCTIONS', 'ALL_FUNCTIONS_READ') or p.code = concat('READ_', r.report_name))) " + " order by r.report_name, rp.parameter_id"; } else { sql = getSQLtoRun(name, type, queryParams); diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/noncore/ReadWriteNonCoreDataService.java b/mifosng-provider/src/main/java/org/mifosng/platform/noncore/ReadWriteNonCoreDataService.java index 62c1d5e6a..f30c37ee8 100644 --- a/mifosng-provider/src/main/java/org/mifosng/platform/noncore/ReadWriteNonCoreDataService.java +++ b/mifosng-provider/src/main/java/org/mifosng/platform/noncore/ReadWriteNonCoreDataService.java @@ -11,10 +11,10 @@ public interface ReadWriteNonCoreDataService { List retrieveDatatableNames(String appTable); - @PreAuthorize(value = "hasAnyRole('ALL_FUNCTIONS', 'CAN_REGISTER_DATATABLE')") + @PreAuthorize(value = "hasAnyRole('ALL_FUNCTIONS', 'REGISTER_DATATABLE')") void registerDatatable(String datatable, String appTable); - @PreAuthorize(value = "hasAnyRole('ALL_FUNCTIONS', 'CAN_DEREGISTER_DATATABLE')") + @PreAuthorize(value = "hasAnyRole('ALL_FUNCTIONS', 'DEREGISTER_DATATABLE')") void deregisterDatatable(String datatable); GenericResultsetData retrieveDataTableGenericResultSet(String datatable, diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/noncore/ReadWriteNonCoreDataServiceImpl.java b/mifosng-provider/src/main/java/org/mifosng/platform/noncore/ReadWriteNonCoreDataServiceImpl.java index 632eb6beb..0cbbde010 100644 --- a/mifosng-provider/src/main/java/org/mifosng/platform/noncore/ReadWriteNonCoreDataServiceImpl.java +++ b/mifosng-provider/src/main/java/org/mifosng/platform/noncore/ReadWriteNonCoreDataServiceImpl.java @@ -68,7 +68,7 @@ public class ReadWriteNonCoreDataServiceImpl implements + " left join m_permission p on p.id = rp.permission_id" + " where ur.appuser_id = " + context.authenticatedUser().getId() - + " and (p.code in ('ALL_FUNCTIONS', 'ALL_FUNCTIONS_READ') or p.code = concat('CAN_READ_', registered_table_name))) " + + " and (p.code in ('ALL_FUNCTIONS', 'ALL_FUNCTIONS_READ') or p.code = concat('READ_', registered_table_name))) " + andClause + " order by application_table_name, registered_table_name"; diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/user/domain/AppUser.java b/mifosng-provider/src/main/java/org/mifosng/platform/user/domain/AppUser.java index f5fabea16..19bee3c0e 100644 --- a/mifosng-provider/src/main/java/org/mifosng/platform/user/domain/AppUser.java +++ b/mifosng-provider/src/main/java/org/mifosng/platform/user/domain/AppUser.java @@ -263,7 +263,7 @@ public class AppUser extends AbstractAuditableCustom implements public boolean hasNotPermissionForReport(String reportName) { if (hasNotPermissionForAnyOf("ALL_FUNCTIONS", "ALL_FUNCTIONS_READ", - "CAN_RUN_" + reportName)) + "READ_" + reportName)) return true; return false; @@ -272,7 +272,7 @@ public class AppUser extends AbstractAuditableCustom implements public boolean hasNotPermissionForDatatable(String datatable, String accessType) { - String matchPermission = "CAN_" + accessType + "_" + datatable; + String matchPermission = accessType + "_" + datatable; if (accessType.equalsIgnoreCase("READ")) {