@Override public Response create(final ApplicationTO applicationTO) { ApplicationTO created = logic.create(applicationTO); URI location = uriInfo.getAbsolutePathBuilder().path(created.getKey()).build(); return Response.created(location). header(RESTHeaders.RESOURCE_KEY, created.getKey()). build(); }
@Override public ApplicationTO getApplicationTO(final Application application) { ApplicationTO applicationTO = new ApplicationTO(); applicationTO.setKey(application.getKey()); applicationTO.setDescription(application.getDescription()); applicationTO.getPrivileges().addAll( application.getPrivileges().stream().map(privilege -> getPrivilegeTO(privilege)). collect(Collectors.toList())); return applicationTO; }
@Override public Application update(final Application toBeUpdated, final ApplicationTO applicationTO) { toBeUpdated.setKey(applicationTO.getKey()); Application application = applicationDAO.save(toBeUpdated); application.setDescription(applicationTO.getDescription()); applicationTO.getPrivileges().forEach(privilegeTO -> { if (privilegeTO == null) { LOG.error("Null {}", PrivilegeTO.class.getSimpleName()); if (!applicationTO.getPrivileges().stream(). anyMatch(privilegeTO -> privilege.getKey().equals(privilegeTO.getKey()))) {
@Override public long size() { return application.getPrivileges().size(); }
@Override public void onClick(final AjaxRequestTarget target) { modal.header(new StringResourceModel("any.new")); modal.setContent(new ApplicationModalPanel(new ApplicationTO(), true, modal, pageRef)); modal.show(true); target.add(modal); } };
@Override public Iterator<PrivilegeTO> iterator(final long first, final long count) { List<PrivilegeTO> list = application.getPrivileges(); Collections.sort(list, comparator); return list.subList((int) first, (int) first + (int) count).iterator(); }
@PreAuthorize("hasRole('" + StandardEntitlement.APPLICATION_UPDATE + "')") public ApplicationTO update(final ApplicationTO applicationTO) { Application application = applicationDAO.find(applicationTO.getKey()); if (application == null) { LOG.error("Could not find application '" + applicationTO.getKey() + "'"); throw new NotFoundException(applicationTO.getKey()); } return binder.getApplicationTO(applicationDAO.save(binder.update(application, applicationTO))); }
@Override protected List<String> load() { return applicationRestClient.list().stream(). flatMap(application -> application.getPrivileges().stream()). map(EntityTO::getKey).collect(Collectors.toList()); } };
@Override public void onClick(final AjaxRequestTarget target, final ApplicationTO ignore) { try { restClient.delete(model.getObject().getKey()); SyncopeConsoleSession.get().info(getString(Constants.OPERATION_SUCCEEDED)); target.add(container); } catch (SyncopeClientException e) { LOG.error("While deleting application {}", model.getObject().getKey(), e); SyncopeConsoleSession.get().error(StringUtils.isBlank(e.getMessage()) ? e.getClass().getName() : e.getMessage()); } ((BasePage) pageRef.getPage()).getNotificationPanel().refresh(target); } }, ActionLink.ActionType.DELETE, StandardEntitlement.APPLICATION_DELETE, true);
@Override public void populateItem( final Item<ICellPopulator<ApplicationTO>> item, final String componentId, final IModel<ApplicationTO> rowModel) { item.add(new Label(componentId, "[" + rowModel.getObject().getPrivileges().stream(). map(EntityTO::getKey).collect(Collectors.joining(", ")) + "]")); } });
@Override protected ApplicationTO 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 ApplicationTO) { key = ((ApplicationTO) args[i]).getKey(); } } } if (key != null) { try { return binder.getApplicationTO(applicationDAO.find(key)); } catch (Throwable ignore) { LOG.debug("Unresolved reference", ignore); throw new UnresolvedReferenceException(ignore); } } throw new UnresolvedReferenceException(); }
@Override protected Serializable onApplyInternal(final PrivilegeTO modelObject) { application.getPrivileges().removeIf(privilege -> privilege.getKey().equals(modelObject.getKey())); application.getPrivileges().add(modelObject); restClient.update(application); return modelObject; }
public Privileges(final RoleTO modelObject) { setTitleModel(new ResourceModel("privileges")); add(new AjaxPalettePanel.Builder<>().build("privileges", new PropertyModel<>(modelObject, "privileges"), new ListModel<>(new ApplicationRestClient().list().stream(). flatMap(application -> application.getPrivileges().stream()). map(EntityTO::getKey).collect(Collectors.toList()))). hideLabel().setOutputMarkupId(true)); } }
@Override public void onClick(final AjaxRequestTarget target, final PrivilegeTO ignore) { try { application.getPrivileges().remove(model.getObject()); restClient.update(application); SyncopeConsoleSession.get().info(getString(Constants.OPERATION_SUCCEEDED)); customActionOnFinishCallback(target); } catch (SyncopeClientException e) { LOG.error("While deleting {}", model.getObject().getKey(), e); SyncopeConsoleSession.get().error(StringUtils.isBlank(e.getMessage()) ? e.getClass().getName() : e.getMessage()); } ((BasePage) pageRef.getPage()).getNotificationPanel().refresh(target); } }, ActionLink.ActionType.DELETE, StandardEntitlement.APPLICATION_UPDATE, true);