@PreAuthorize("isAuthenticated()") @Transactional(readOnly = true) public List<RealmTO> list(final String fullPath) { Realm realm = realmDAO.findByFullPath(fullPath); if (realm == null) { LOG.error("Could not find realm '" + fullPath + "'"); throw new NotFoundException(fullPath); } final boolean admin = AuthContextUtils.getAuthorizations().keySet().contains(StandardEntitlement.REALM_LIST); return realmDAO.findDescendants(realm).stream(). map(descendant -> binder.getRealmTO(descendant, admin)).collect(Collectors.toList()); }
@PreAuthorize("hasRole('" + StandardEntitlement.REALM_UPDATE + "')") public ProvisioningResult<RealmTO> update(final RealmTO realmTO) { Realm realm = realmDAO.findByFullPath(realmTO.getFullPath()); if (realm == null) { LOG.error("Could not find realm '" + realmTO.getFullPath() + "'"); throw new NotFoundException(realmTO.getFullPath()); } PropagationByResource propByRes = binder.update(realm, realmTO); realm = realmDAO.save(realm); List<PropagationTaskInfo> taskInfos = propagationManager.createTasks(realm, propByRes, null); PropagationReporter propagationReporter = taskExecutor.execute(taskInfos, false); ProvisioningResult<RealmTO> result = new ProvisioningResult<>(); result.setEntity(binder.getRealmTO(realm, true)); result.getPropagationStatuses().addAll(propagationReporter.getStatuses()); return result; }
Realm realm = realmDAO.save(binder.create(parent, realmTO)); result.setEntity(binder.getRealmTO(realm, true)); result.getPropagationStatuses().addAll(propagationReporter.getStatuses());
private Realm update(final RealmTO realmTO, final ConnectorObject beforeObj, final ProvisioningReport result) { Realm realm = realmDAO.findByFullPath(realmTO.getFullPath()); PropagationByResource propByRes = binder.update(realm, realmTO); realm = realmDAO.save(realm); List<PropagationTaskInfo> taskInfos = propagationManager.createTasks(realm, propByRes, null); if (!taskInfos.isEmpty()) { taskInfos.get(0).setBeforeObj(Optional.ofNullable(beforeObj)); PropagationReporter reporter = new DefaultPropagationReporter(); taskExecutor.execute(taskInfos.get(0), reporter); reportPropagation(result, reporter); } return realm; }
Realm realm = realmDAO.save(binder.create(profile.getTask().getDestinatioRealm(), realmTO)); RealmTO actual = binder.getRealmTO(realm, true);
private void assign(final Realm realm, final ProvisioningReport result) { RealmTO realmTO = binder.getRealmTO(realm, true); realmTO.getResources().add(profile.getTask().getResource().getKey()); provision(update(realmTO, null, result), result); }
RealmTO before = binder.getRealmTO(realm, true); if (before == null) { result.setStatus(ProvisioningReport.Status.FAILURE); PropagationByResource propByRes = binder.update(realm, before); realm = realmDAO.save(realm); RealmTO updated = binder.getRealmTO(realm, true);
private void unassign(final Realm realm, final ConnectorObject beforeObj, final ProvisioningReport result) { RealmTO realmTO = binder.getRealmTO(realm, true); realmTO.getResources().remove(profile.getTask().getResource().getKey()); deprovision(update(realmTO, beforeObj, result), beforeObj, result); }
private void link(final Realm realm, final boolean unlink, final ProvisioningReport result) { RealmTO realmTO = binder.getRealmTO(realm, true); if (unlink) { realmTO.getResources().remove(profile.getTask().getResource().getKey()); } else { realmTO.getResources().add(profile.getTask().getResource().getKey()); } update(realmTO, null, result); }
@Override protected RealmTO resolveReference(final Method method, final Object... args) throws UnresolvedReferenceException { String fullPath = null; if (ArrayUtils.isNotEmpty(args)) { for (int i = 0; fullPath == null && i < args.length; i++) { if (args[i] instanceof String) { fullPath = (String) args[i]; } else if (args[i] instanceof RealmTO) { fullPath = ((RealmTO) args[i]).getFullPath(); } } } if (fullPath != null) { try { return binder.getRealmTO(realmDAO.findByFullPath(fullPath), true); } catch (Throwable e) { LOG.debug("Unresolved reference", e); throw new UnresolvedReferenceException(e); } } throw new UnresolvedReferenceException(); }
result.setEntity(binder.getRealmTO(realm, true)); result.getPropagationStatuses().addAll(propagationReporter.getStatuses());
RealmTO before = binder.getRealmTO(realm, true); if (before == null) { result.setStatus(ProvisioningReport.Status.FAILURE); if (unlink) { realm.getResources().remove(profile.getTask().getResource()); realmTO = binder.getRealmTO(realmDAO.save(realm), true); } else { realmTO = binder.getRealmTO(realm, true);
RealmTO before = binder.getRealmTO(realm, true); if (before == null) { result.setStatus(ProvisioningReport.Status.FAILURE);
RealmTO before = binder.getRealmTO(realm, true); if (before == null) { result.setStatus(ProvisioningReport.Status.FAILURE);
result.setStatus(ProvisioningReport.Status.IGNORE); } else { update(binder.getRealmTO(realm, true), beforeObj, result);