update permissions work to reflect checker permissions (for maker-checker)

This commit is contained in:
John Woodlock
2012-11-26 14:31:25 +00:00
parent e4e285d943
commit 092eabc0a0
5 changed files with 55 additions and 15 deletions
@@ -0,0 +1,19 @@
ALTER TABLE m_permission
CHANGE COLUMN `is_maker_checker` `can_maker_checker` TINYINT(1) NOT NULL DEFAULT '1' ;
/*
add all checker permissions
*/
insert into m_permission(grouping, code, entity_name, action_name, can_maker_checker)
select grouping, concat(code, '_CHECKER'), entity_name, action_name, false
from m_permission
where code not like 'READ_%'
and grouping != 'special';
/* 5k not enough for command json */
ALTER TABLE m_portfolio_command_source
CHANGE COLUMN `command_as_json` `command_as_json` TEXT NOT NULL ;
@@ -16,19 +16,19 @@ public class PermissionUsageData {
@SuppressWarnings("unused")
private final Boolean selected;
@SuppressWarnings("unused")
private final Boolean isMakerChecker;
private final Boolean canMakerChecker;
public static PermissionUsageData from(final String permissionCode, final boolean isSelected) {
return new PermissionUsageData(null, permissionCode, null, null, isSelected, null);
}
public PermissionUsageData(final String grouping, final String code, final String entityName, final String actionName,
final Boolean selected, final Boolean isMakerChecker) {
final Boolean selected, final Boolean canMakerChecker) {
this.grouping = grouping;
this.code = code;
this.entityName = entityName;
this.actionName = actionName;
this.selected = selected;
this.isMakerChecker = isMakerChecker;
this.canMakerChecker = canMakerChecker;
}
}
@@ -105,22 +105,33 @@ public class ReadWriteNonCoreDataServiceImpl implements
validateAppTable(appTable);
String createPermission = "'CREATE_" + datatable + "'";
String createPermissionChecker = "'CREATE_" + datatable + "_CHECKER'";
String readPermission = "'READ_" + datatable + "'";
String updatePermission = "'UPDATE_" + datatable + "'";
String updatePermissionChecker = "'UPDATE_" + datatable + "_CHECKER'";
String deletePermission = "'DELETE_" + datatable + "'";
String deletePermissionChecker = "'DELETE_" + datatable + "_CHECKER'";
// TODO - put in batch command later
String sql = "insert into x_registered_table (registered_table_name, application_table_name) values ('"
+ datatable + "', '" + appTable + "')";
genericDataService.updateSQL(sql, "SQL: " + sql);
sql = "insert into m_permission (grouping, code, action_name, entity_name, is_maker_checker) values "
/*
* add all permissions, including checker permissions for maintenance
* tasks
*/
sql = "insert into m_permission (grouping, code, action_name, entity_name, can_maker_checker) values "
+ "('datatable', "
+ createPermission
+ ", 'CREATE', '"
+ datatable
+ "', true),"
+ "('datatable', "
+ createPermissionChecker
+ ", 'CREATE', '"
+ datatable
+ "', false),"
+ "('datatable', "
+ readPermission
+ ", 'READ', '"
+ datatable
@@ -131,9 +142,19 @@ public class ReadWriteNonCoreDataServiceImpl implements
+ datatable
+ "', true),"
+ "('datatable', "
+ updatePermissionChecker
+ ", 'UPDATE', '"
+ datatable
+ "', false),"
+ "('datatable', "
+ deletePermission
+ ", 'DELETE', '"
+ datatable + "', true)";
+ datatable
+ "', true),"
+ "('datatable', "
+ deletePermissionChecker
+ ", 'DELETE', '"
+ datatable + "', false)";
genericDataService.updateSQL(sql, "SQL: " + sql);
@@ -149,9 +170,9 @@ public class ReadWriteNonCoreDataServiceImpl implements
// TODO - put in batch command later
String permissionList = "('CREATE_" + datatable + "', 'READ_"
+ datatable + "', 'UPDATE_" + datatable + "', 'DELETE_"
+ datatable + "')";
String permissionList = "('CREATE_" + datatable + "', 'CREATE_"
+ datatable + "_CHECKER', 'READ_" + datatable + "', 'UPDATE_"
+ datatable + "', 'UPDATE_" + datatable + "_CHECKER', 'DELETE_" + datatable + "', 'DELETE_" + datatable + "_CHECKER')";
String sql = "delete from m_role_permission where m_role_permission.permission_id in (select id from m_permission where code in "
+ permissionList + ")";
@@ -26,8 +26,8 @@ public class Permission extends AbstractPersistable<Long> {
private final String actionName;
@SuppressWarnings("unused")
@Column(name = "is_maker_checker", nullable = false)
private Boolean isMakerChecker;
@Column(name = "can_maker_checker", nullable = false)
private Boolean canMakerChecker;
protected Permission() {
this.grouping = null;
@@ -54,19 +54,19 @@ public class PermissionReadPlatformServiceImpl implements PermissionReadPlatform
final String entityName = rs.getString("entityName");
final String actionName = rs.getString("actionName");
final Boolean selected = rs.getBoolean("selected");
final Boolean isMakerChecker = rs.getBoolean("isMakerChecker");
final Boolean canMakerChecker = rs.getBoolean("canMakerChecker");
return new PermissionUsageData(grouping, code, entityName, actionName, selected, isMakerChecker);
return new PermissionUsageData(grouping, code, entityName, actionName, selected, canMakerChecker);
}
public String permissionSchema() {
return "select p.grouping, p.code, p.entity_name as entityName, p.action_name as actionName, true as selected, p.is_maker_checker as isMakerChecker"
return "select p.grouping, p.code, p.entity_name as entityName, p.action_name as actionName, true as selected, p.can_maker_checker as canMakerChecker"
+ " from m_permission p " + " order by p.grouping, ifnull(entity_name, ''), p.code";
}
public String rolePermissionSchema() {
return "select p.grouping, p.code, p.entity_name as entityName, p.action_name as actionName, if(isnull(rp.role_id), false, true) as selected, "
+ " if(isnull(rp.role_id), false, p.is_maker_checker) as isMakerChecker "
+ " if(isnull(rp.role_id), false, p.can_maker_checker) as canMakerChecker "
+ " from m_permission p "
+ " left join m_role_permission rp on rp.permission_id = p.id and rp.role_id = ? "
+ " order by p.grouping, ifnull(entity_name, ''), p.code";