From 7ac1b9453812783c99869e41fa675edadfa8a36a Mon Sep 17 00:00:00 2001 From: skublik Date: Wed, 7 Nov 2018 11:19:28 +0100 Subject: [PATCH] MID-4975 adding runPrivileged only for PageSelfRegistration --- .../web/component/prism/PrismValuePanel.java | 39 +++++++++++-------- 1 file changed, 23 insertions(+), 16 deletions(-) diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/prism/PrismValuePanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/prism/PrismValuePanel.java index 2be0a102f9d..f5e71018550 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/prism/PrismValuePanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/prism/PrismValuePanel.java @@ -34,6 +34,7 @@ import com.evolveum.midpoint.web.page.admin.configuration.component.EmptyOnChangeAjaxFormUpdatingBehavior; import com.evolveum.midpoint.web.page.admin.reports.component.AceEditorPanel; import com.evolveum.midpoint.web.page.admin.users.PageUser; +import com.evolveum.midpoint.web.page.login.PageSelfRegistration; import com.evolveum.midpoint.xml.ns._public.common.common_3.*; import com.evolveum.prism.xml.ns._public.types_3.ItemPathType; import org.apache.commons.lang.ClassUtils; @@ -899,22 +900,28 @@ public void checkInputValue(AutoCompleteTextField input, AjaxRequestTarget targe PrismReferenceValue valueEnumerationRef = def.getValueEnumerationRef(); String lookupTableUid = valueEnumerationRef.getOid(); - final PrismObject lookupTable = getPageBase().runPrivileged( - () -> { - Task task = getPageBase().createAnonymousTask("loadLookupTable"); - OperationResult result = task.getResult(); - Collection> options = WebModelServiceUtils - .createLookupTableRetrieveOptions(); - return WebModelServiceUtils.loadObject(LookupTableType.class, - lookupTableUid, options, getPageBase(), task, result); - }); -// Task task = getPageBase().createSimpleTask("loadLookupTable"); -// OperationResult result = task.getResult(); -// -// Collection> options = WebModelServiceUtils -// .createLookupTableRetrieveOptions(); -// final PrismObject lookupTable = WebModelServiceUtils.loadObject(LookupTableType.class, -// lookupTableUid, options, getPageBase(), task, result); + PrismObject lookupTable; + String operation = "loadLookupTable"; + if(getPageBase() instanceof PageSelfRegistration) { + lookupTable = getPageBase().runPrivileged( + () -> { + Task task = getPageBase().createAnonymousTask(operation); + OperationResult result = task.getResult(); + Collection> options = WebModelServiceUtils + .createLookupTableRetrieveOptions(); + return WebModelServiceUtils.loadObject(LookupTableType.class, + lookupTableUid, options, getPageBase(), task, result); + }); + } else { + Task task = getPageBase().createSimpleTask(operation); + OperationResult result = task.getResult(); + + Collection> options = WebModelServiceUtils + .createLookupTableRetrieveOptions(); + lookupTable = WebModelServiceUtils.loadObject(LookupTableType.class, + lookupTableUid, options, getPageBase(), task, result); + } + if (lookupTable != null) { panel = new AutoCompleteTextPanel(id, new LookupPropertyModel<>(getModel(),