@PreAuthorize("hasRole('" + StandardEntitlement.ANYTYPECLASS_UPDATE + "')") public AnyTypeClassTO update(final AnyTypeClassTO anyTypeClassTO) { AnyTypeClass anyType = anyTypeClassDAO.find(anyTypeClassTO.getKey()); if (anyType == null) { LOG.error("Could not find anyTypeClass '" + anyTypeClassTO.getKey() + "'"); throw new NotFoundException(anyTypeClassTO.getKey()); } binder.update(anyType, anyTypeClassTO); anyType = anyTypeClassDAO.save(anyType); return binder.getAnyTypeClassTO(anyType); }
@PreAuthorize("hasRole('" + StandardEntitlement.ANYTYPECLASS_CREATE + "')") public AnyTypeClassTO create(final AnyTypeClassTO anyTypeClassTO) { if (StringUtils.isBlank(anyTypeClassTO.getKey())) { SyncopeClientException sce = SyncopeClientException.build(ClientExceptionType.RequiredValuesMissing); sce.getElements().add(AnyTypeClass.class.getSimpleName() + " name"); throw sce; } if (anyTypeClassDAO.find(anyTypeClassTO.getKey()) != null) { throw new DuplicateException(anyTypeClassTO.getKey()); } return binder.getAnyTypeClassTO(anyTypeClassDAO.save(binder.create(anyTypeClassTO))); }
private void buildAvailableSchemas(final String key) { List<String> configurationSchemas = new ConfRestClient().list().stream(). map(Attr::getSchema).collect(Collectors.toList()); new AnyTypeClassRestClient().list().stream(). filter(item -> key == null || !item.getKey().equals(key)). forEach(item -> { availablePlainSchemas.removeAll(item.getPlainSchemas()); availableDerSchemas.removeAll(item.getDerSchemas()); availableVirSchemas.removeAll(item.getVirSchemas()); }); availablePlainSchemas.removeAll(configurationSchemas); availablePlainSchemas.removeAll(LAYOUT_PARAMETERS); } }
@Override public void onClick(final AjaxRequestTarget target, final AnyTypeClassTO ignore) { try { restClient.delete(model.getObject().getKey()); SyncopeConsoleSession.get().info(getString(Constants.OPERATION_SUCCEEDED)); target.add(container); } catch (Exception e) { LOG.error("While deleting {}", model.getObject(), e); SyncopeConsoleSession.get().error(StringUtils.isBlank(e.getMessage()) ? e.getClass().getName() : e.getMessage()); } ((BasePage) pageRef.getPage()).getNotificationPanel().refresh(target); } }, ActionLink.ActionType.DELETE, StandardEntitlement.ANYTYPECLASS_DELETE, true);
@Override protected AnyTypeClassTO resolveReference(final Method method, final Object... args) throws UnresolvedReferenceException { String key = null; if (ArrayUtils.isNotEmpty(args)) { for (int i = 0; key == null && i < args.length; i++) { if (args[i] instanceof String) { key = (String) args[i]; } else if (args[i] instanceof AnyTypeClassTO) { key = ((AnyTypeClassTO) args[i]).getKey(); } } } if (StringUtils.isNotBlank(key)) { try { return binder.getAnyTypeClassTO(anyTypeClassDAO.find(key)); } catch (Throwable ignore) { LOG.debug("Unresolved reference", ignore); throw new UnresolvedReferenceException(ignore); } } throw new UnresolvedReferenceException(); }
@Override public void update(final AnyTypeClass anyTypeClass, final AnyTypeClassTO anyTypeClassTO) { if (anyTypeClass.getKey() == null) { anyTypeClass.setKey(anyTypeClassTO.getKey());