use of com.infiniteautomation.mango.util.exception.NotFoundException in project ma-modules-public by infiniteautomation.
the class ModulesRestController method markForDeletion.
@ApiOperation(value = "Set Marked For Deletion state of Module", notes = "Marking a module for deletion will un-install it upon restart")
@RequestMapping(method = RequestMethod.PUT, value = "/deletion-state/{moduleName}")
public ResponseEntity<ModuleModel> markForDeletion(@PathVariable String moduleName, @ApiParam(value = "Deletion State", required = true, defaultValue = "false", allowMultiple = false) @RequestParam(name = "delete", required = true) boolean delete, @AuthenticationPrincipal PermissionHolder user, HttpServletRequest request) {
Module module = ModuleRegistry.getModule(moduleName);
if (module == null)
throw new NotFoundException();
module.setMarkedForDeletion(delete);
if (module.isMarkedForDeletion() != delete)
throw new ModuleRestException(HttpStatus.BAD_REQUEST, new TranslatableMessage("rest.modules.error.dependencyFailure"));
return ResponseEntity.ok(new ModuleModel(module));
}
use of com.infiniteautomation.mango.util.exception.NotFoundException in project ma-modules-public by infiniteautomation.
the class MaintenanceEventEmportDefinition method doImport.
@Override
public void doImport(JsonValue jsonValue, ImportContext importContext, PermissionHolder importer) throws JsonException {
MaintenanceEventsService service = Common.getBean(MaintenanceEventsService.class);
JsonObject maintenanceEvent = jsonValue.toJsonObject();
String xid = maintenanceEvent.getString("xid");
if (StringUtils.isBlank(xid))
xid = service.generateUniqueXid();
MaintenanceEventVO vo = null;
if (StringUtils.isBlank(xid)) {
xid = service.generateUniqueXid();
} else {
try {
vo = service.get(xid);
} catch (NotFoundException e) {
}
}
if (vo == null) {
vo = new MaintenanceEventVO();
vo.setXid(xid);
}
try {
importContext.getReader().readInto(vo, maintenanceEvent);
// Ensure we have a default permission since null is valid in Mango 3.x
if (vo.getTogglePermission() == null) {
vo.setTogglePermission(new MangoPermission());
}
boolean isnew = vo.getId() == Common.NEW_ID;
if (isnew) {
service.insert(vo);
} else {
service.update(vo.getId(), vo);
}
importContext.addSuccessMessage(isnew, "emport.maintenanceEvent.prefix", xid);
} catch (ValidationException e) {
importContext.copyValidationMessages(e.getValidationResult(), "emport.maintenanceEvent.prefix", xid);
} catch (TranslatableJsonException e) {
importContext.getResult().addGenericMessage("emport.maintenanceEvent.prefix", xid, e.getMsg());
} catch (JsonException e) {
importContext.getResult().addGenericMessage("emport.maintenanceEvent.prefix", xid, importContext.getJsonExceptionMessage(e));
}
}
use of com.infiniteautomation.mango.util.exception.NotFoundException in project ma-modules-public by infiniteautomation.
the class MaintenanceEventType method getEventPermission.
@Override
public MangoPermission getEventPermission(Map<String, Object> context, PermissionService service) {
DataSourceService dataSourceService = Common.getBean(DataSourceService.class);
DataPointService dataPointService = Common.getBean(DataPointService.class);
MaintenanceEventsService maintenanceEventService = Common.getBean(MaintenanceEventsService.class);
Set<Role> allRequired = new HashSet<>();
try {
MaintenanceEventVO vo = maintenanceEventService.get(maintenanceId);
try {
for (int dsId : vo.getDataSources()) {
MangoPermission read = dataSourceService.getReadPermission(dsId);
read.getRoles().forEach(allRequired::addAll);
}
} catch (NotFoundException e) {
// Ignore this item
}
try {
for (int dpId : vo.getDataPoints()) {
MangoPermission read = dataPointService.getReadPermission(dpId);
read.getRoles().forEach(allRequired::addAll);
}
} catch (NotFoundException e) {
// Ignore this item
}
} catch (NotFoundException e) {
// Ignore all of it
}
if (allRequired.size() == 0) {
return MangoPermission.superadminOnly();
} else {
return MangoPermission.requireAllRoles(allRequired);
}
}
use of com.infiniteautomation.mango.util.exception.NotFoundException in project ma-modules-public by infiniteautomation.
the class MaintenanceEventsService method getEventRT.
public MaintenanceEventRT getEventRT(String xid) throws NotFoundException, PermissionException, TranslatableIllegalStateException {
PermissionHolder user = Common.getUser();
MaintenanceEventVO existing = dao.getByXid(xid);
if (existing == null)
throw new NotFoundException();
ensureTogglePermission(existing, user);
MaintenanceEventRT rt = RTMDefinition.instance.getRunningMaintenanceEvent(existing.getId());
if (rt == null)
throw new TranslatableIllegalStateException(new TranslatableMessage("maintenanceEvents.toggle.disabled"));
return rt;
}
use of com.infiniteautomation.mango.util.exception.NotFoundException in project ma-modules-public by infiniteautomation.
the class SystemMetricsRestController method get.
@ApiOperation(value = "Get the current value for one System Metric by its ID", notes = "")
@RequestMapping(method = RequestMethod.GET, value = "/{id}")
public ValueMonitorModel get(@ApiParam(value = "Valid Monitor id", required = true, allowMultiple = false) @PathVariable String id, @AuthenticationPrincipal PermissionHolder user) {
MangoPermission permission = definition.getPermission();
service.ensurePermission(user, permission);
List<ValueMonitor<?>> values = Common.MONITORED_VALUES.getMonitors();
for (ValueMonitor<?> v : values) {
if (v.getId().equals(id)) {
return new ValueMonitorModel(v);
}
}
throw new NotFoundException();
}
Aggregations