private void doExtractResources(final ContentHandler handler, final AnyTO anyTO) throws SAXException { if (anyTO.getResources().isEmpty()) { LOG.debug("No resources found for {}[{}]", anyTO.getClass().getSimpleName(), anyTO.getKey()); } else { AttributesImpl atts = new AttributesImpl(); handler.startElement("", "", "resources", null); for (String resourceName : anyTO.getResources()) { atts.clear(); atts.addAttribute("", "", ReportXMLConst.ATTR_NAME, ReportXMLConst.XSD_STRING, resourceName); handler.startElement("", "", "resource", atts); handler.endElement("", "", "resource"); } handler.endElement("", "", "resources"); } }
private void doExtractResources(final ContentHandler handler, final AnyTO anyTO) throws SAXException { if (anyTO.getResources().isEmpty()) { LOG.debug("No resources found for {}[{}]", anyTO.getClass().getSimpleName(), anyTO.getKey()); } else { AttributesImpl atts = new AttributesImpl(); handler.startElement("", "", "resources", null); for (String resourceName : anyTO.getResources()) { atts.clear(); atts.addAttribute("", "", ReportXMLConst.ATTR_NAME, ReportXMLConst.XSD_STRING, resourceName); handler.startElement("", "", "resource", atts); handler.endElement("", "", "resource"); } handler.endElement("", "", "resources"); } }
protected Details<A> addOptionalDetailsPanel(final AnyWrapper<A> modelObject) { if (modelObject.getInnerObject().getKey() == null) { return null; } else { return new Details<>( modelObject, mode == AjaxWizard.Mode.TEMPLATE, true, pageRef); } }
@Override public List<Triple<ConnObjectTO, ConnObjectWrapper, String>> get( final AnyTO any, final Collection<String> resources) { return ReconStatusUtils.getReconStatuses( AnyTypeKind.fromTOClass(any.getClass()), any.getKey(), any.getResources()).stream(). map(status -> Triple.<ConnObjectTO, ConnObjectWrapper, String>of( status.getRight().getOnSyncope(), new ConnObjectWrapper(any, status.getLeft(), status.getRight().getOnResource()), null)). collect(Collectors.toList()); } }
public StatusBean(final AnyTO any, final String resource) { this.key = any.getKey(); this.name = any instanceof UserTO ? ((UserTO) any).getUsername() : any instanceof GroupTO ? ((GroupTO) any).getName() : ((AnyObjectTO) any).getName(); this.resource = resource; }
protected Pair<ConnObjectTO, ConnObjectTO> getConnObjectTOs( final String anyKey, final String resource, final List<Triple<ConnObjectTO, ConnObjectWrapper, String>> objects) { for (Triple<ConnObjectTO, ConnObjectWrapper, String> object : objects) { if (anyKey.equals(object.getMiddle().getAny().getKey()) && resource.equalsIgnoreCase(object.getMiddle().getResource())) { return Pair.of(object.getLeft(), object.getMiddle().getConnObjectTO()); } } return null; }
protected ProvisioningResult<TO> afterUpdate( final TO input, final List<PropagationStatus> statuses, final List<LogicActions> actions, final boolean authDynRealms, final Set<String> dynRealmsBefore) { Set<String> dynRealmsAfter = new HashSet<>(input.getDynRealms()); if (authDynRealms && !dynRealmsBefore.equals(dynRealmsAfter)) { throw new DelegatedAdministrationException( this instanceof UserLogic ? AnyTypeKind.USER : this instanceof GroupLogic ? AnyTypeKind.GROUP : AnyTypeKind.ANY_OBJECT, input.getKey()); } TO any = input; for (LogicActions action : actions) { any = action.afterUpdate(any); } ProvisioningResult<TO> result = new ProvisioningResult<>(); result.setEntity(any); result.getPropagationStatuses().addAll(statuses); return result; }
@Override public void onClick(final AjaxRequestTarget target, final StatusBean bean) { multiLevelPanelRef.next(bean.getResource(), new ReconStatusPanel(bean.getResource(), anyTypeKind, anyTO.getKey()), target); target.add(multiLevelPanelRef); AnyStatusDirectoryPanel.this.getTogglePanel().close(target); } }, ActionLink.ActionType.VIEW, StandardEntitlement.RESOURCE_GET_CONNOBJECT);
@Override public void onEvent(final IEvent<?> event) { if (event.getPayload() instanceof SearchClausePanel.SearchEvent) { final AjaxRequestTarget target = SearchClausePanel.SearchEvent.class.cast(event.getPayload()). getTarget(); final String fiql = SearchUtils.buildFIQL(anyObjectSearchPanel.getModel().getObject(), SyncopeClient.getAnyObjectSearchConditionBuilder(anyObjectSearchPanel.getBackObjectType())); AnyDirectoryPanel.class.cast(Specification.this.anyObjectDirectoryPanel).search(fiql, target); } else if (event.getPayload() instanceof AnySelectionDirectoryPanel.ItemSelection) { final AjaxRequestTarget target = AnySelectionDirectoryPanel.ItemSelection.class.cast(event. getPayload()).getTarget(); AnyTO right = AnySelectionDirectoryPanel.ItemSelection.class.cast(event.getPayload()).getSelection(); rel.setOtherEndKey(right.getKey()); Relationships.this.addNewRelationships(rel); Relationships.this.addOrReplace(getViewFragment().setRenderBodyOnly(true)); target.add(Relationships.this); } else { super.onEvent(event); } } }
@Override public void onClick(final AjaxRequestTarget target, final StatusBean bean) { multiLevelPanelRef.next("PUSH " + bean.getResource(), new ReconTaskPanel( bean.getResource(), new PushTaskTO(), anyTypeKind, anyTO.getKey(), multiLevelPanelRef, pageRef), target); target.add(multiLevelPanelRef); AnyStatusDirectoryPanel.this.getTogglePanel().close(target); } }, ActionLink.ActionType.RECONCILIATION_PUSH, StandardEntitlement.TASK_EXECUTE);
@Override public void onClick(final AjaxRequestTarget target, final StatusBean bean) { multiLevelPanelRef.next("PULL " + bean.getResource(), new ReconTaskPanel( bean.getResource(), new PullTaskTO(), anyTypeKind, anyTO.getKey(), multiLevelPanelRef, pageRef), target); target.add(multiLevelPanelRef); AnyStatusDirectoryPanel.this.getTogglePanel().close(target); } }, ActionLink.ActionType.RECONCILIATION_PULL, StandardEntitlement.TASK_EXECUTE);
@Override protected void provision(final Any<?> any, final Boolean enabled, final ProvisioningReport result) { AnyTO before = getAnyTO(any.getKey()); List<String> noPropResources = new ArrayList<>(before.getResources()); noPropResources.remove(profile.getTask().getResource().getKey()); PropagationByResource propByRes = new PropagationByResource(); propByRes.add(ResourceOperation.CREATE, profile.getTask().getResource().getKey()); PropagationReporter reporter = taskExecutor.execute(propagationManager.getUserCreateTasks( before.getKey(), null, enabled, propByRes, before.getVirAttrs(), noPropResources), false); reportPropagation(result, reporter); }
@Override public void onEvent(final IEvent<?> event) { if (event.getPayload() instanceof SearchClausePanel.SearchEvent) { final AjaxRequestTarget target = SearchClausePanel.SearchEvent.class.cast(event.getPayload()).getTarget(); if (Ownership.this.isGroupOwnership.getObject()) { final String fiql = SearchUtils.buildFIQL( groupSearchPanel.getModel().getObject(), SyncopeClient.getGroupSearchConditionBuilder()); groupDirectoryPanel.search(fiql, target); } else { final String fiql = SearchUtils.buildFIQL( userSearchPanel.getModel().getObject(), SyncopeClient.getUserSearchConditionBuilder()); userDirectoryPanel.search(fiql, target); } } else if (event.getPayload() instanceof AnySelectionDirectoryPanel.ItemSelection) { final AnyTO sel = ((AnySelectionDirectoryPanel.ItemSelection) event.getPayload()).getSelection(); if (sel == null) { wrapper.getInnerObject().setUserOwner(null); wrapper.getInnerObject().setGroupOwner(null); } else if (sel instanceof UserTO) { wrapper.getInnerObject().setUserOwner(sel.getKey()); wrapper.getInnerObject().setGroupOwner(null); } else if (sel instanceof GroupTO) { wrapper.getInnerObject().setGroupOwner(sel.getKey()); wrapper.getInnerObject().setUserOwner(null); } ((AnySelectionDirectoryPanel.ItemSelection) event.getPayload()).getTarget().add(ownerContainer); } else { super.onEvent(event); } }