}
public List<Map<String, Object>> getCurrentCascadePermissionsJobs () throws DotDataException, DotSecurityException {
HostAPI hostAPI = APILocator.getHostAPI();
FolderAPI folderAPI = APILocator.getFolderAPI();
RoleAPI roleAPI = APILocator.getRoleAPI();
List<ScheduledTask> tasks = CascadePermissionsJob.getCurrentScheduledJobs();
List<Map<String, Object>> scheduled = new ArrayList<Map<String, Object>>();
for (ScheduledTask task : tasks) {
Map<String, Object> taskMap = new HashMap<String, Object>();
Map<String, Object> props = task.getProperties();
String permissionableId = (String) props.get("permissionableId");
String roleId = (String) props.get("roleId");
if(permissionableId == null || roleId == null)
continue;
Host host = hostAPI.find(permissionableId, APILocator.getUserAPI().getSystemUser(), false);
if(host == null) {
Folder folder = APILocator.getFolderAPI().find(permissionableId, APILocator.getUserAPI().getSystemUser(), false);
if(folder == null)
continue;
taskMap.put("folder", folder.getMap());
host = hostAPI.findParentHost(folder,APILocator.getUserAPI().getSystemUser(), false);
taskMap.put("host", host.getMap());
} else {
taskMap.put("host", host.getMap());
}
Role role = roleAPI.loadRoleById(roleId);
if(role == null)
continue;
taskMap.put("role", role.toMap());
scheduled.add(taskMap);
}