diff --git a/config/sql/midpoint/2.3/h2/h2-2.3.sql b/config/sql/midpoint/3.0/h2/h2-3.0.sql similarity index 100% rename from config/sql/midpoint/2.3/h2/h2-2.3.sql rename to config/sql/midpoint/3.0/h2/h2-3.0.sql diff --git a/config/sql/midpoint/2.3/mysql/mysql-2.3.sql b/config/sql/midpoint/3.0/mysql/mysql-3.0.sql similarity index 100% rename from config/sql/midpoint/2.3/mysql/mysql-2.3.sql rename to config/sql/midpoint/3.0/mysql/mysql-3.0.sql diff --git a/config/sql/midpoint/2.3/oracle/oracle-2.3.sql b/config/sql/midpoint/3.0/oracle/oracle-3.0.sql similarity index 100% rename from config/sql/midpoint/2.3/oracle/oracle-2.3.sql rename to config/sql/midpoint/3.0/oracle/oracle-3.0.sql diff --git a/config/sql/midpoint/2.3/postgresql/postgresql-2.3.sql b/config/sql/midpoint/3.0/postgresql/postgresql-3.0.sql similarity index 100% rename from config/sql/midpoint/2.3/postgresql/postgresql-2.3.sql rename to config/sql/midpoint/3.0/postgresql/postgresql-3.0.sql diff --git a/config/sql/midpoint/2.3/sqlserver/sqlserver-2.3.sql b/config/sql/midpoint/3.0/sqlserver/sqlserver-3.0.sql similarity index 100% rename from config/sql/midpoint/2.3/sqlserver/sqlserver-2.3.sql rename to config/sql/midpoint/3.0/sqlserver/sqlserver-3.0.sql diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/AsyncUpdatePanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/AsyncUpdatePanel.java index 3e419a2bba6..ed160941c07 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/AsyncUpdatePanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/AsyncUpdatePanel.java @@ -129,5 +129,5 @@ public boolean isVisible() { * @param callableParameterModel Model providing access to parameters needed by the callable * @return A callable instance that encapsulates the logic needed to obtain the panel data */ - protected abstract Callable createCallable(Authentication auth, IModel callableParameterModel); + protected abstract SecurityContextAwareCallable createCallable(Authentication auth, IModel callableParameterModel); } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/SecurityContextAwareCallable.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/SecurityContextAwareCallable.java new file mode 100644 index 00000000000..9288fc10ecb --- /dev/null +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/SecurityContextAwareCallable.java @@ -0,0 +1,53 @@ +/* + * Copyright (c) 2010-2014 Evolveum + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.evolveum.midpoint.web.component; + +import com.evolveum.midpoint.security.api.SecurityEnforcer; +import org.apache.commons.lang.Validate; +import org.springframework.security.core.Authentication; + +import java.util.concurrent.Callable; + +/** + * @author lazyman + */ +public abstract class SecurityContextAwareCallable implements Callable { + + private SecurityEnforcer enforcer; + private Authentication authentication; + + protected SecurityContextAwareCallable(SecurityEnforcer enforcer, Authentication authentication) { + Validate.notNull(enforcer, "Security enforcer must not be null."); + + this.enforcer = enforcer; + this.authentication = authentication; + } + + @Override + public final V call() throws Exception { + enforcer.setupPreAuthenticatedSecurityContext(authentication); + + try { + return callWithContextPrepared(); + } finally { + enforcer.setupPreAuthenticatedSecurityContext((Authentication) null); + //todo cleanup security context + } + } + + public abstract V callWithContextPrepared() throws Exception; +} diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/home/PageDashboard.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/home/PageDashboard.java index 219bd5713d2..b84839a5ae0 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/home/PageDashboard.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/home/PageDashboard.java @@ -26,6 +26,7 @@ import com.evolveum.midpoint.util.logging.TraceManager; import com.evolveum.midpoint.web.application.AuthorizationAction; import com.evolveum.midpoint.web.application.PageDescriptor; +import com.evolveum.midpoint.web.component.SecurityContextAwareCallable; import com.evolveum.midpoint.web.component.assignment.AssignmentEditorDtoType; import com.evolveum.midpoint.web.component.util.CallableResult; import com.evolveum.midpoint.web.component.util.VisibleEnableBehaviour; @@ -209,12 +210,14 @@ private void initSystemInfo() { "fa fa-fw fa-tachometer", DashboardColor.GREEN) { @Override - protected Callable> createCallable(final Authentication auth, - IModel callableParameterModel) { - return new Callable>() { + protected SecurityContextAwareCallable> createCallable( + Authentication auth, IModel callableParameterModel) { + + return new SecurityContextAwareCallable>( + getSecurityEnforcer(), auth) { @Override - public CallableResult call() throws Exception { + public CallableResult callWithContextPrepared() throws Exception { CallableResult callableResult = new CallableResult(); //TODO - fill correct data in users and tasks graphs[shood] @@ -246,12 +249,14 @@ private void initMyWorkItems() { "fa fa-fw fa-tasks", DashboardColor.RED) { @Override - protected Callable>> createCallable(final Authentication auth, - IModel callableParameterModel) { - return new Callable>>() { + protected SecurityContextAwareCallable>> createCallable( + Authentication auth, IModel callableParameterModel) { + + return new SecurityContextAwareCallable>>( + getSecurityEnforcer(), auth) { @Override - public CallableResult> call() throws Exception { + public CallableResult> callWithContextPrepared() throws Exception { return loadWorkItems(); } }; @@ -278,15 +283,15 @@ private void initMyAccounts() { "fa fa-fw fa-external-link", DashboardColor.BLUE) { @Override - protected Callable>> createCallable(final Authentication auth, - IModel callableParameterModel) { + protected SecurityContextAwareCallable>> createCallable( + Authentication auth, IModel callableParameterModel) { - return new Callable>>() { + return new SecurityContextAwareCallable>>( + getSecurityEnforcer(), auth) { @Override - public AccountCallableResult> call() throws Exception { -// getSecurityEnforcer().setupPreAuthenticatedSecurityContext(); - + public AccountCallableResult> callWithContextPrepared() + throws Exception { return loadAccounts(); } }; @@ -331,14 +336,14 @@ private void initAssignments() { "fa fa-fw fa-star", DashboardColor.YELLOW) { @Override - protected Callable>> createCallable(final Authentication auth, - IModel callableParameterModel) { - return new Callable>>() { + protected SecurityContextAwareCallable>> createCallable( + Authentication auth, IModel callableParameterModel) { - @Override - public CallableResult> call() throws Exception { - getSecurityEnforcer().setupPreAuthenticatedSecurityContext(auth); + return new SecurityContextAwareCallable>>( + getSecurityEnforcer(), auth) { + @Override + public CallableResult> callWithContextPrepared() throws Exception { return loadAssignments(); } }; diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/server/PageTaskEdit.html b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/server/PageTaskEdit.html index 5ac3fce373d..3097922340b 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/server/PageTaskEdit.html +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/server/PageTaskEdit.html @@ -186,6 +186,7 @@

+ diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/server/PageTaskEdit.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/server/PageTaskEdit.java index e5f0432c034..a11c0767e24 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/server/PageTaskEdit.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/server/PageTaskEdit.java @@ -117,6 +117,7 @@ public class PageTaskEdit extends PageAdminTasks { private static final String OPERATION_SAVE_TASK = DOT_CLASS + "saveTask"; private static final String OPERATION_SUSPEND_TASKS = DOT_CLASS + "suspendTask"; private static final String OPERATION_RESUME_TASK = DOT_CLASS + "resumeTask"; + private static final String OPERATION_RUN_NOW_TASK = DOT_CLASS + "runNowTask"; private static final String ID_MAIN_FORM = "mainForm"; private static final String ID_IDENTIFIER = "identifier"; @@ -136,6 +137,7 @@ public class PageTaskEdit extends PageAdminTasks { private static final String ID_OPERATION_RESULT_PANEL = "operationResultPanel"; private static final String ID_SUSPEND = "suspend"; private static final String ID_RESUME = "resume"; + private static final String ID_RUN_NOW = "runNow"; private static final String ID_DRY_RUN = "dryRun"; private IModel model; @@ -169,11 +171,30 @@ private boolean isRunnableOrRunning() { return TaskDtoExecutionStatus.RUNNABLE.equals(exec) || TaskDtoExecutionStatus.RUNNING.equals(exec); } + private boolean isRunnable() { + TaskDtoExecutionStatus exec = model.getObject().getExecution(); + return TaskDtoExecutionStatus.RUNNABLE.equals(exec); + } + private boolean isRunning() { TaskDtoExecutionStatus exec = model.getObject().getExecution(); return TaskDtoExecutionStatus.RUNNING.equals(exec); } + private boolean isClosed() { + TaskDtoExecutionStatus exec = model.getObject().getExecution(); + return TaskDtoExecutionStatus.CLOSED.equals(exec); + } + + private boolean isRecurring() { + return model.getObject().getRecurring(); + } + + private boolean isSuspended() { + TaskDtoExecutionStatus exec = model.getObject().getExecution(); + return TaskDtoExecutionStatus.SUSPENDED.equals(exec); + } + private TaskDto loadTask() { OperationResult result = new OperationResult(OPERATION_LOAD_TASK); Task operationTask = getTaskManager().createTaskInstance(OPERATION_LOAD_TASK); @@ -695,7 +716,7 @@ public void onClick(AjaxRequestTarget target) { @Override public boolean isVisible() { - return isRunnableOrRunning(); + return !edit && isRunnableOrRunning(); } }); mainForm.add(suspend); @@ -711,11 +732,27 @@ public void onClick(AjaxRequestTarget target) { @Override public boolean isVisible() { - return !isRunning(); + return !edit && (isSuspended() || (isClosed() && isRecurring())); } }); mainForm.add(resume); - } + + AjaxButton runNow = new AjaxButton(ID_RUN_NOW, createStringResource("pageTaskEdit.button.runNow")) { + + @Override + public void onClick(AjaxRequestTarget target) { + runNowPerformed(target); + } + }; + runNow.add(new VisibleEnableBehaviour() { + + @Override + public boolean isVisible() { + return !edit && (isRunnable() || (isClosed() && !isRecurring())); + } + }); + mainForm.add(runNow); + } private List> initResultColumns() { List> columns = new ArrayList>(); @@ -864,7 +901,25 @@ private void resumePerformed(AjaxRequestTarget target) { setResponsePage(PageTasks.class); } - private static class EmptyOnBlurAjaxFormUpdatingBehaviour extends AjaxFormComponentUpdatingBehavior { + private void runNowPerformed(AjaxRequestTarget target) { + String oid = model.getObject().getOid(); + OperationResult result = new OperationResult(OPERATION_RUN_NOW_TASK); + try { + getTaskService().scheduleTasksNow(Arrays.asList(oid), result); + result.computeStatus(); + + if (result.isSuccess()) { + result.recordStatus(OperationResultStatus.SUCCESS, "The task has been successfully scheduled to run."); + } + } catch (RuntimeException e) { + result.recordFatalError("Couldn't schedule the task due to an unexpected exception", e); + } + + showResultInSession(result); + setResponsePage(PageTasks.class); + } + + private static class EmptyOnBlurAjaxFormUpdatingBehaviour extends AjaxFormComponentUpdatingBehavior { public EmptyOnBlurAjaxFormUpdatingBehaviour() { super("onBlur"); diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/server/PageTaskEdit.properties b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/server/PageTaskEdit.properties index 811084e23b5..fbd80a5a7c3 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/server/PageTaskEdit.properties +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/server/PageTaskEdit.properties @@ -19,6 +19,7 @@ pageTaskEdit.button.back=Back pageTaskEdit.button.save=Save pageTaskEdit.button.edit=Edit pageTaskEdit.button.resume=Resume +pageTaskEdit.button.runNow=Run now pageTaskEdit.button.suspend=Suspend pageTaskEdit.basic=Basic diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/server/dto/ScheduleValidator.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/server/dto/ScheduleValidator.java index 929e1eb7081..e6083181bd8 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/server/dto/ScheduleValidator.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/server/dto/ScheduleValidator.java @@ -93,9 +93,10 @@ public void validate(Form form) { error(interval, "pageTask.scheduleValidation.bothIntervalAndCron"); } - if (interval.getModelObject() == null && StringUtils.isEmpty(cron.getModelObject())) { - error(interval, "pageTask.scheduleValidation.neitherIntervalNorCron"); - } + // there can be recurring tasks that are started only on demand, so we allow specifying no timing information +// if (interval.getModelObject() == null && StringUtils.isEmpty(cron.getModelObject())) { +// error(interval, "pageTask.scheduleValidation.neitherIntervalNorCron"); +// } if (!StringUtils.isEmpty(cron.getModelObject())) { ParseException pe = taskManager.validateCronExpression(cron.getModelObject()); diff --git a/gui/admin-gui/src/main/resources/initial-objects/040-role-enduser.xml b/gui/admin-gui/src/main/resources/initial-objects/040-role-enduser.xml index 6cabc1b0e16..02171717989 100644 --- a/gui/admin-gui/src/main/resources/initial-objects/040-role-enduser.xml +++ b/gui/admin-gui/src/main/resources/initial-objects/040-role-enduser.xml @@ -22,4 +22,31 @@ http://midpoint.evolveum.com/xml/ns/public/security/authorization-3#dashboard http://midpoint.evolveum.com/xml/ns/public/security/authorization-3#myPasswords + + http://midpoint.evolveum.com/xml/ns/public/security/authorization-model-3#read + + self + + + + http://midpoint.evolveum.com/xml/ns/public/security/authorization-model-3#read + + ShadowType + + self + + + + + http://midpoint.evolveum.com/xml/ns/public/security/authorization-model-3#read + + OrgType + + + ResourceType + + + RoleType + + \ No newline at end of file diff --git a/gui/admin-gui/src/main/resources/initial-objects/100-report-reconciliation.xml b/gui/admin-gui/src/main/resources/initial-objects/100-report-reconciliation.xml index a236273ab5b..295398204e9 100644 --- a/gui/admin-gui/src/main/resources/initial-objects/100-report-reconciliation.xml +++ b/gui/admin-gui/src/main/resources/initial-objects/100-report-reconciliation.xml @@ -27,7 +27,7 @@ Reconciliation report for selected resource. true - + UEQ5NGJXd2dkbVZ5YzJsdmJqMGlNUzR3SWo4K0RRbzhJVVJQUTFSWlVFVWdhbUZ6Y0dWeVZHVnRjR3hoZEdVTkNpQWdVRlZDVEVsRElDSXRMeTlLWVhOd1pYSlNaWEJ2Y25Sekx5OUVWRVFnVkdWdGNHeGhkR1V2TDBWT0lnMEtJQ0FpYUhSMGNEb3ZMMnBoYzNCbGNuSmxjRzl5ZEhNdWMyOTFjbU5sWm05eVoyVXVibVYwTDJSMFpITXZhbUZ6Y0dWeWRHVnRjR3hoZEdVdVpIUmtJajROQ2p4cVlYTndaWEpVWlcxd2JHRjBaVDROQ2lBZ0lDQUpDVHh6ZEhsc1pTQm1iMjUwVG1GdFpUMGlSR1ZxWVZaMUlGTmhibk1pSUdadmJuUlRhWHBsUFNJeE1DSWdhRUZzYVdkdVBTSk1aV1owSWlCcGMwUmxabUYxYkhROUluUnlkV1VpSUdselVHUm1SVzFpWldSa1pXUTlJblJ5ZFdVaUlBMEtDUWtKQ1NBZ0lHNWhiV1U5SWtKaGMyVWlJSEJrWmtWdVkyOWthVzVuUFNKSlpHVnVkR2wwZVMxSUlpQndaR1pHYjI1MFRtRnRaVDBpUkdWcVlWWjFVMkZ1Y3k1MGRHWWlJSFpCYkdsbmJqMGlUV2xrWkd4bElqNE5DZ2tKQ1R3dmMzUjViR1UrRFFvSkNRazhjM1I1YkdVZ1ltRmphMk52Ykc5eVBTSWpNalkzT1RrMElpQm1iMjUwVTJsNlpUMGlNallpSUdadmNtVmpiMnh2Y2owaUkwWkdSa1pHUmlJZ2FYTkVaV1poZFd4MFBTSm1ZV3h6WlNJTkNpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnRiMlJsUFNKUGNHRnhkV1VpSUc1aGJXVTlJbFJwZEd4bElpQnpkSGxzWlQwaVFtRnpaU0l2UGlBTkNna0pDVHh6ZEhsc1pTQm1iMjUwVTJsNlpUMGlNVElpSUdadmNtVmpiMnh2Y2owaUl6QXdNREF3TUNJZ2FYTkVaV1poZFd4MFBTSm1ZV3h6WlNJZ2JtRnRaVDBpVUdGblpTQm9aV0ZrWlhJaURRb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjM1I1YkdVOUlrSmhjMlVpTHo0TkNna0pDVHh6ZEhsc1pTQmlZV05yWTI5c2IzSTlJaU16TXpNek16TWlJR1p2Ym5SVGFYcGxQU0l4TWlJZ1ptOXlaV052Ykc5eVBTSWpSa1pHUmtaR0lpQm9RV3hwWjI0OUlrTmxiblJsY2lJTkNpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBjMFJsWm1GMWJIUTlJbVpoYkhObElpQnRiMlJsUFNKUGNHRnhkV1VpSUc1aGJXVTlJa052YkhWdGJpQm9aV0ZrWlhJaUlITjBlV3hsUFNKQ1lYTmxJaTgrRFFvSkNRazhjM1I1YkdVZ2FYTkNiMnhrUFNKbVlXeHpaU0lnYVhORVpXWmhkV3gwUFNKbVlXeHpaU0lnYm1GdFpUMGlSR1YwWVdsc0lpQnpkSGxzWlQwaVFtRnpaU0l2UGcwS0NRa0pQSE4wZVd4bElHWnZiblJUYVhwbFBTSTVJaUJtYjNKbFkyOXNiM0k5SWlNd01EQXdNREFpSUdselJHVm1ZWFZzZEQwaVptRnNjMlVpSUc1aGJXVTlJbEJoWjJVZ1ptOXZkR1Z5SWcwS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lITjBlV3hsUFNKQ1lYTmxJaTgrRFFvSkNUd3ZhbUZ6Y0dWeVZHVnRjR3hoZEdVKw== landscape pdf @@ -73,10 +73,11 @@ s.synchronizationSituation as situation, s.synchronizationTimestamp as situationTimestamp from RShadow as s join s.resourceRef as resRef - where resRef.type = 5 and resRef.targetOid = $P{resourceOid} and s.kind = 0 + where s.objectClass = $P{objectClass} and resRef.type = 5 and resRef.targetOid = $P{resourceOid} and s.kind = 0 order by s.synchronizationSituation, s.name.orig - ri:AccountObjectClass + http://midpoint.evolveum.com/xml/ns/public/resource/instance-3#AccountObjectClass + Account ef2bc95b-76e0-48e2-86d6-3d4f02d3fafe Localhost CSVfile default @@ -107,8 +108,8 @@ - - + + Object Class: @@ -116,6 +117,14 @@ + + + + Object Class Name: + + + + diff --git a/infra/prism/src/main/java/com/evolveum/midpoint/prism/parser/XNodeProcessor.java b/infra/prism/src/main/java/com/evolveum/midpoint/prism/parser/XNodeProcessor.java index 0d68b267e30..e46507871d8 100644 --- a/infra/prism/src/main/java/com/evolveum/midpoint/prism/parser/XNodeProcessor.java +++ b/infra/prism/src/main/java/com/evolveum/midpoint/prism/parser/XNodeProcessor.java @@ -786,7 +786,7 @@ private SearchFilterType parseFilter(XNode xnode) throws SchemaException { } // TODO: is this warning needed? if (xnode.isEmpty()){ - System.out.println("Emplty filter. Skipping parsing."); + System.out.println("Empty filter. Skipping parsing."); return null; } return SearchFilterType.createFromXNode(xnode); diff --git a/infra/prism/src/main/java/com/evolveum/midpoint/prism/util/ValueSerializationUtil.java b/infra/prism/src/main/java/com/evolveum/midpoint/prism/util/ValueSerializationUtil.java index 3608fdf8841..571dba785b5 100644 --- a/infra/prism/src/main/java/com/evolveum/midpoint/prism/util/ValueSerializationUtil.java +++ b/infra/prism/src/main/java/com/evolveum/midpoint/prism/util/ValueSerializationUtil.java @@ -176,7 +176,7 @@ public static String serializeItemValue(QName itemName, ItemDefinition def, Pris XNodeSerializer serializer = prismContext.getXnodeProcessor().createSerializer(); XNode node = serializer.serializeItemValue(value, def); String s = prismContext.getParserDom().serializeToString(node, itemName); - System.out.println("serialized ITEM VALUE: " + s); + //System.out.println("serialized ITEM VALUE: " + s); return s; } @@ -186,7 +186,7 @@ public static String serializeFilter(SearchFilterType query, PrismContext prismC } public static T deserializeValue(String value, Class clazz, QName itemName, ItemDefinition itemDef, PrismContext prismContext, String language) throws SchemaException{ - System.out.println("item value deserialization"); + //System.out.println("item value deserialization"); XNode xnode = prismContext.getParserDom().parse(value); @@ -236,7 +236,7 @@ public static T deserializeValue(String value, Class clazz, QName itemName, } public static Collection deserializeItemValues(String value, Item item, String language) throws SchemaException{ - System.out.println("item value deserialization"); + //System.out.println("item value deserialization"); PrismContext prismContext = item.getPrismContext(); XNode xnode = prismContext.getParserDom().parse(value); if (xnode instanceof RootXNode){ diff --git a/model/model-common/src/main/java/com/evolveum/midpoint/model/common/expression/script/xpath/XPathScriptEvaluator.java b/model/model-common/src/main/java/com/evolveum/midpoint/model/common/expression/script/xpath/XPathScriptEvaluator.java index ef1a865d097..31618eb4e68 100644 --- a/model/model-common/src/main/java/com/evolveum/midpoint/model/common/expression/script/xpath/XPathScriptEvaluator.java +++ b/model/model-common/src/main/java/com/evolveum/midpoint/model/common/expression/script/xpath/XPathScriptEvaluator.java @@ -141,7 +141,7 @@ private Object evaluate(QName returnType, String code, ExpressionVariables varia throws ExpressionEvaluationException, ObjectNotFoundException, ExpressionSyntaxException { XPathExpressionCodeHolder codeHolder = new XPathExpressionCodeHolder(code); - System.out.println("code " + code); + //System.out.println("code " + code); XPath xpath = factory.newXPath(); XPathVariableResolver variableResolver = new LazyXPathVariableResolver(variables, objectResolver, contextDescription, prismContext, result); diff --git a/samples/model-client-sample-dotnet/ModelClientSample/ModelClientSample.v11.suo b/samples/model-client-sample-dotnet/ModelClientSample/ModelClientSample.v11.suo index 9b675d7655a..3cf4d9c4e13 100644 Binary files a/samples/model-client-sample-dotnet/ModelClientSample/ModelClientSample.v11.suo and b/samples/model-client-sample-dotnet/ModelClientSample/ModelClientSample.v11.suo differ