Tomas Jelinek has uploaded a new change for review. Change subject: userportal: WIP implement the createInstanceOnly role ......................................................................
userportal: WIP implement the createInstanceOnly role WIP Change-Id: Ib2462c227b302e665327226d8e670a7394888fa8 Signed-off-by: Tomas Jelinek <tjeli...@redhat.com> --- A frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/auth/CommonCurrentUserRole.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/system/BaseApplicationInit.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/UiCommonDefaultTypeResolver.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/view/popup/AbstractVmPopupView.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/popup/AbstractVmBasedPopupPresenterWidget.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractModeSwitchingPopupWidget.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractVmPopupWidget.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/pool/PoolNewPopupWidget.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/PopupWidgetConfig.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmPopupWidget.java A frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/auth/CurrentUserRole.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/LoginModel.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/UserPortalLoginModel.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UnitVmModel.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/instancetypes/InstanceTypeManager.java M frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/auth/LoggedInExtendedPlaceGatekeeper.java R frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/auth/UserPortalCurrentUserRole.java M frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/gin/SystemModule.java M frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/place/UserPortalPlaceManager.java M frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/section/main/presenter/HeaderPresenterWidget.java M frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/section/main/presenter/popup/vm/VmClonePopupPresenterWidget.java M frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/system/ApplicationInit.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/SystemModule.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/system/ApplicationInit.java 24 files changed, 256 insertions(+), 63 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/73/27073/1 diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/auth/CommonCurrentUserRole.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/auth/CommonCurrentUserRole.java new file mode 100644 index 0000000..6db22c2 --- /dev/null +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/auth/CommonCurrentUserRole.java @@ -0,0 +1,16 @@ +package org.ovirt.engine.ui.common.auth; + +import org.ovirt.engine.ui.uicommonweb.auth.CurrentUserRole; + +public class CommonCurrentUserRole implements CurrentUserRole { + + private boolean createInstanceOnly = false; + + public boolean isCreateInstanceOnly() { + return createInstanceOnly; + } + + public void setCreateInstanceOnly(boolean createInstanceOnly) { + this.createInstanceOnly = createInstanceOnly; + } +} diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/system/BaseApplicationInit.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/system/BaseApplicationInit.java index b37faaf..0b4df21 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/system/BaseApplicationInit.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/system/BaseApplicationInit.java @@ -1,5 +1,9 @@ package org.ovirt.engine.ui.common.system; +import com.google.gwt.core.client.Scheduler; +import com.google.gwt.core.client.Scheduler.ScheduledCommand; +import com.google.gwt.event.shared.EventBus; +import com.google.inject.Provider; import org.ovirt.engine.core.common.businessentities.DbUser; import org.ovirt.engine.ui.common.auth.AutoLoginData; import org.ovirt.engine.ui.common.auth.CurrentUser; @@ -11,16 +15,12 @@ import org.ovirt.engine.ui.frontend.Frontend; import org.ovirt.engine.ui.uicommonweb.ITypeResolver; import org.ovirt.engine.ui.uicommonweb.TypeResolver; +import org.ovirt.engine.ui.uicommonweb.auth.CurrentUserRole; import org.ovirt.engine.ui.uicommonweb.dataprovider.AsyncDataProvider; import org.ovirt.engine.ui.uicommonweb.models.LoginModel; import org.ovirt.engine.ui.uicompat.Event; import org.ovirt.engine.ui.uicompat.EventArgs; import org.ovirt.engine.ui.uicompat.IEventListener; - -import com.google.gwt.core.client.Scheduler; -import com.google.gwt.core.client.Scheduler.ScheduledCommand; -import com.google.gwt.event.shared.EventBus; -import com.google.inject.Provider; /** * Contains initialization logic that gets executed at application startup. @@ -37,6 +37,7 @@ protected final CurrentUser user; protected final EventBus eventBus; protected final Frontend frontend; + private CurrentUserRole currentUserRole; // Using Provider because any UiCommon model will fail before TypeResolver is initialized private final Provider<T> loginModelProvider; @@ -49,7 +50,7 @@ CurrentUser user, EventBus eventBus, Provider<T> loginModelProvider, LockInteractionManager lockInteractionManager, - Frontend frontend) { + Frontend frontend, CurrentUserRole currentUserRole) { this.typeResolver = typeResolver; this.frontendEventsHandler = frontendEventsHandler; this.frontendFailureEventListener = frontendFailureEventListener; @@ -58,6 +59,7 @@ this.loginModelProvider = loginModelProvider; this.lockInteractionManager = lockInteractionManager; this.frontend = frontend; + this.currentUserRole = currentUserRole; // Handle UI logout requests user.setLogoutHandler(this); @@ -88,6 +90,15 @@ onLogin(loginModel); } }); + + loginModel.getCreateInstanceOnly().getEntityChangedEvent().addListener( + new IEventListener() { + @Override + public void eventRaised(Event ev, Object sender, EventArgs args) { + currentUserRole.setCreateInstanceOnly(loginModel.getCreateInstanceOnly().getEntity() ); + } + } + ); } /** diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/UiCommonDefaultTypeResolver.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/UiCommonDefaultTypeResolver.java index dcb18da..312ba10 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/UiCommonDefaultTypeResolver.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/UiCommonDefaultTypeResolver.java @@ -1,5 +1,6 @@ package org.ovirt.engine.ui.common.uicommon; +import com.google.inject.Inject; import org.ovirt.engine.ui.uicommonweb.Configurator; import org.ovirt.engine.ui.uicommonweb.ConsoleOptionsFrontendPersister; import org.ovirt.engine.ui.uicommonweb.ConsoleUtils; @@ -7,6 +8,7 @@ import org.ovirt.engine.ui.uicommonweb.ILogger; import org.ovirt.engine.ui.uicommonweb.ITimer; import org.ovirt.engine.ui.uicommonweb.ITypeResolver; +import org.ovirt.engine.ui.uicommonweb.auth.CurrentUserRole; import org.ovirt.engine.ui.uicommonweb.models.vms.INoVnc; import org.ovirt.engine.ui.uicommonweb.models.vms.IRdpNative; import org.ovirt.engine.ui.uicommonweb.models.vms.IRdpPlugin; @@ -14,8 +16,6 @@ import org.ovirt.engine.ui.uicommonweb.models.vms.ISpiceNative; import org.ovirt.engine.ui.uicommonweb.models.vms.ISpicePlugin; import org.ovirt.engine.ui.uicommonweb.models.vms.IVncNative; - -import com.google.inject.Inject; public class UiCommonDefaultTypeResolver implements ITypeResolver { @@ -25,16 +25,19 @@ private final ConsoleOptionsFrontendPersister consoleOptionsFrontendPersister; private final ConsoleUtils consoleUtils; private final ErrorPopupManager errorPopupManager; + private CurrentUserRole currentUserRole; @Inject public UiCommonDefaultTypeResolver(Configurator configurator, ILogger logger, ConsoleUtils consoleUtils, ErrorPopupManager errorPopupManager, - ConsoleOptionsFrontendPersister consoleOptionsFrontendPersister) { + ConsoleOptionsFrontendPersister consoleOptionsFrontendPersister, + CurrentUserRole currentUserRole) { this.configurator = configurator; this.logger = logger; this.consoleOptionsFrontendPersister = consoleOptionsFrontendPersister; this.consoleUtils = consoleUtils; this.errorPopupManager = errorPopupManager; + this.currentUserRole = currentUserRole; } @SuppressWarnings("rawtypes") @@ -66,6 +69,8 @@ return consoleUtils; } else if (type == ErrorPopupManager.class) { return errorPopupManager; + } else if (type == CurrentUserRole.class) { + return currentUserRole; } throw new RuntimeException("UiCommon Resolver cannot resolve type: " + type); //$NON-NLS-1$ diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/view/popup/AbstractVmPopupView.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/view/popup/AbstractVmPopupView.java index b54617a..144c77f 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/view/popup/AbstractVmPopupView.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/view/popup/AbstractVmPopupView.java @@ -39,6 +39,13 @@ } @Override + public void initToCreateInstanceMode() { + if (getContentWidget() instanceof AbstractVmPopupWidget) { + ((AbstractVmPopupWidget) getContentWidget()).initCreateInstanceMode(); + } + } + + @Override public void setSpiceProxyOverrideExplanation(String explanation) { if (getContentWidget() instanceof AbstractVmPopupWidget) { ((AbstractVmPopupWidget) getContentWidget()).setSpiceProxyOverrideExplanation(explanation); diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/popup/AbstractVmBasedPopupPresenterWidget.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/popup/AbstractVmBasedPopupPresenterWidget.java index c3353e1..5dd2b9e 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/popup/AbstractVmBasedPopupPresenterWidget.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/popup/AbstractVmBasedPopupPresenterWidget.java @@ -1,5 +1,7 @@ package org.ovirt.engine.ui.common.widget.popup; +import com.google.gwt.event.shared.EventBus; +import com.google.inject.Inject; import org.ovirt.engine.ui.common.presenter.AbstractModelBoundPopupPresenterWidget; import org.ovirt.engine.ui.common.system.ClientStorage; import org.ovirt.engine.ui.uicommonweb.models.vms.UnitVmModel; @@ -7,13 +9,12 @@ import org.ovirt.engine.ui.uicompat.EventArgs; import org.ovirt.engine.ui.uicompat.IEventListener; -import com.google.gwt.event.shared.EventBus; -import com.google.inject.Inject; - public class AbstractVmBasedPopupPresenterWidget<V extends AbstractVmBasedPopupPresenterWidget.ViewDef> extends AbstractModelBoundPopupPresenterWidget<UnitVmModel, V> { public interface ViewDef extends AbstractModelBoundPopupPresenterWidget.ViewDef<UnitVmModel> { void switchMode(boolean isAdvanced); + + void initToCreateInstanceMode(); void setSpiceProxyOverrideExplanation(String explanation); @@ -37,9 +38,18 @@ swithAccordingToMode(model); + initToCreateInstanceMode(model); + initListeners(model); } + private void initToCreateInstanceMode(UnitVmModel model) { + if (model.isCreateInstanceOnly()) { + // hide the admin-only widgets only for non-admin users + getView().initToCreateInstanceMode(); + } + } + private void initListeners(final UnitVmModel model) { model.getAdvancedMode().getPropertyChangedEvent().addListener(new IEventListener() { diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractModeSwitchingPopupWidget.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractModeSwitchingPopupWidget.java index 0f3cc1c..a552b0d 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractModeSwitchingPopupWidget.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractModeSwitchingPopupWidget.java @@ -14,6 +14,8 @@ private PopupWidgetConfigMap widgetConfiguration; + private boolean createInstanceMode = false; + private T model; // the tab which is always here @@ -39,7 +41,7 @@ public void switchMode(boolean advanced) { Set<Widget> allConfiguredWidgets = widgetConfiguration.getAll().keySet(); for (Widget widget : allConfiguredWidgets) { - widget.setVisible(widgetConfiguration.get(widget).isCurrentlyVisible(advanced)); + widget.setVisible(widgetConfiguration.get(widget).isCurrentlyVisible(advanced, createInstanceMode)); } DialogTab activeTab = ((DialogTabPanel) getWidget()).getActiveTab(); @@ -67,9 +69,9 @@ } vmPopupWidgetConfig.setApplicationLevelVisible(desiredVisibility); - boolean advancedMode = (Boolean) model.getAdvancedMode().getEntity(); + boolean advancedMode = model.getAdvancedMode().getEntity(); - return vmPopupWidgetConfig.isCurrentlyVisible(advancedMode); + return vmPopupWidgetConfig.isCurrentlyVisible(advancedMode, createInstanceMode); } @Override @@ -89,4 +91,8 @@ public PopupWidgetConfigMap getWidgetConfiguration() { return widgetConfiguration; } + + public void setCreateInstanceMode(boolean createInstanceMode) { + this.createInstanceMode = createInstanceMode; + } } diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractVmPopupWidget.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractVmPopupWidget.java index b34e645..7d2df3f 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractVmPopupWidget.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractVmPopupWidget.java @@ -65,6 +65,7 @@ import org.ovirt.engine.ui.common.widget.renderer.MemorySizeRenderer; import org.ovirt.engine.ui.common.widget.renderer.NullSafeRenderer; import org.ovirt.engine.ui.common.widget.table.column.TextColumnWithTooltip; +import org.ovirt.engine.ui.common.widget.uicommon.popup.vm.PopupWidgetConfig; import org.ovirt.engine.ui.common.widget.uicommon.popup.vm.PopupWidgetConfigMap; import org.ovirt.engine.ui.common.widget.uicommon.popup.vm.SerialNumberPolicyWidget; import org.ovirt.engine.ui.common.widget.uicommon.popup.vm.VmPopupVmInitWidget; @@ -442,6 +443,10 @@ @Path(value = "numOfMonitors.selectedItem") @WithElementId("numOfMonitors") public ListModelListBoxEditor<Integer> numOfMonitorsEditor; + + @UiField + @Ignore + public Label numOfMonitorsLabel; @UiField(provided = true) @Path(value = "isSingleQxlEnabled.entity") @@ -1818,6 +1823,42 @@ ); } + protected List<Widget> adminOnlyWidgets() { + return Arrays.<Widget> asList( + // general tab + oSTypeEditor, + + // system tab + detachableMemSizeEditor, + totalvCPUsEditorWithInfoIcon, + vcpusAdvancedParameterExpander, + vcpusAdvancedParameterExpanderContent, + serialNumberPolicyEditor, + + // console tab + usbSupportEditor, + numOfMonitorsLabel, + numOfMonitorsEditor, + isSingleQxlEnabledEditor, + isSmartcardEnabledEditorWithDetachable, + ssoMethodLabel, + ssoMethodNone, + ssoMethodGuestAgent, + expander, + isSoundcardEnabledEditorWithDetachable, + isConsoleDeviceEnabledEditorWithDetachable, + spiceProxyEnabledCheckboxWithInfoIcon, + spiceProxyEditor, + + // rest of the tabs + initialRunTab, + hostTab, + highAvailabilityTab, + resourceAllocationTab, + customPropertiesTab + ); + } + protected void disableAllTabs() { generalTab.disableContent(); poolTab.disableContent(); @@ -1838,6 +1879,39 @@ instanceTypesEditor.setEnabled(false); } + protected void updateOrAddToWidgetConfiguration(PopupWidgetConfigMap configuration, List<Widget> widgets, WidgetConfigurationUpdater updater) { + for (Widget widget: widgets) { + if (configuration.containsKey(widget)) { + configuration.update(widget, updater.updateConfiguration(configuration.get(widget))); + } else { + configuration.putOne(widget, updater.updateConfiguration(simpleField())); + } + } + } + + protected static interface WidgetConfigurationUpdater { + PopupWidgetConfig updateConfiguration(PopupWidgetConfig original); + } + + protected static class UpdateToDetachable implements WidgetConfigurationUpdater { + public static UpdateToDetachable INSTANCE = new UpdateToDetachable(); + + + @Override + public PopupWidgetConfig updateConfiguration(PopupWidgetConfig original) { + return original.detachable(); + } + } + + protected static class UpdateToAdminOnly implements WidgetConfigurationUpdater { + public static UpdateToAdminOnly INSTANCE = new UpdateToAdminOnly(); + + + @Override + public PopupWidgetConfig updateConfiguration(PopupWidgetConfig original) { + return original.visibleForAdminOnly(); + } + } protected void decorateDetachableFields() { for (Widget decoratedWidget : getWidgetConfiguration().getDetachables().keySet()) { @@ -1854,4 +1928,11 @@ } } } + + public void initCreateInstanceMode() { + setCreateInstanceMode(true); + for (Widget adminOnlyField : getWidgetConfiguration().getVisibleForAdminOnly().keySet()) { + adminOnlyField.setVisible(false); + } + } } diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/pool/PoolNewPopupWidget.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/pool/PoolNewPopupWidget.java index 2accc8d..5c42755 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/pool/PoolNewPopupWidget.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/pool/PoolNewPopupWidget.java @@ -82,7 +82,7 @@ @Override protected PopupWidgetConfigMap createWidgetConfiguration() { - return super.createWidgetConfiguration(). + PopupWidgetConfigMap widgetConfiguration = super.createWidgetConfiguration(). update(highAvailabilityTab, hiddenField()). update(spiceProxyEditor, simpleField().visibleInAdvancedModeOnly()). update(spiceProxyEnabledCheckboxWithInfoIcon, simpleField().visibleInAdvancedModeOnly()). @@ -95,6 +95,10 @@ putOne(editPoolEditMaxAssignedVmsPerUserPanel, hiddenField()). update(templateVersionNameEditor, hiddenField()). putAll(detachableWidgets(), simpleField().detachable().visibleInAdvancedModeOnly()); + + updateOrAddToWidgetConfiguration(widgetConfiguration, detachableWidgets(), UpdateToDetachable.INSTANCE); + + return widgetConfiguration; } } diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/PopupWidgetConfig.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/PopupWidgetConfig.java index 9776944..8d17430 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/PopupWidgetConfig.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/PopupWidgetConfig.java @@ -76,7 +76,7 @@ this.applicationLevelVisible = applicationLevelVisible; } - public boolean isCurrentlyVisible(boolean advancedMode) { + public boolean isCurrentlyVisible(boolean advancedMode, boolean createInstanceMode) { if (isAlwaysHidden()) { return false; } @@ -89,7 +89,10 @@ return false; } - // ignoring the adminOnly flag for now + if (createInstanceMode && isAdminOnly()) { + return false; + } + return true; } diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmPopupWidget.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmPopupWidget.java index 6d76668..8bababa 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmPopupWidget.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmPopupWidget.java @@ -1,8 +1,6 @@ package org.ovirt.engine.ui.common.widget.uicommon.popup.vm; -import static org.ovirt.engine.ui.common.widget.uicommon.popup.vm.PopupWidgetConfig.hiddenField; -import static org.ovirt.engine.ui.common.widget.uicommon.popup.vm.PopupWidgetConfig.simpleField; - +import com.google.gwt.core.client.GWT; import com.google.gwt.event.shared.EventBus; import org.ovirt.engine.ui.common.CommonApplicationConstants; import org.ovirt.engine.ui.common.CommonApplicationMessages; @@ -12,7 +10,7 @@ import org.ovirt.engine.ui.common.widget.uicommon.popup.AbstractVmPopupWidget; import org.ovirt.engine.ui.uicommonweb.models.vms.UnitVmModel; -import com.google.gwt.core.client.GWT; +import static org.ovirt.engine.ui.common.widget.uicommon.popup.vm.PopupWidgetConfig.hiddenField; public class VmPopupWidget extends AbstractVmPopupWidget { @@ -48,9 +46,13 @@ @Override protected PopupWidgetConfigMap createWidgetConfiguration() { - return super.createWidgetConfiguration(). + PopupWidgetConfigMap widgetConfiguration = super.createWidgetConfiguration(). putAll(poolSpecificFields(), hiddenField()). - update(templateVersionNameEditor, hiddenField()). - putAll(detachableWidgets(), simpleField().detachable().visibleInAdvancedModeOnly()); + update(templateVersionNameEditor, hiddenField()); + + updateOrAddToWidgetConfiguration(widgetConfiguration, detachableWidgets(), UpdateToDetachable.INSTANCE); + updateOrAddToWidgetConfiguration(widgetConfiguration, adminOnlyWidgets(), UpdateToAdminOnly.INSTANCE); + + return widgetConfiguration; } } diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/auth/CurrentUserRole.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/auth/CurrentUserRole.java new file mode 100644 index 0000000..5c24fba --- /dev/null +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/auth/CurrentUserRole.java @@ -0,0 +1,8 @@ +package org.ovirt.engine.ui.uicommonweb.auth; + +public interface CurrentUserRole { + + boolean isCreateInstanceOnly(); + + void setCreateInstanceOnly(boolean createInstanceOnly); +} diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/LoginModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/LoginModel.java index 7538292..52bf951 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/LoginModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/LoginModel.java @@ -115,6 +115,16 @@ } } + private EntityModel<Boolean> createInstanceOnly; + + public EntityModel<Boolean> getCreateInstanceOnly() { + return createInstanceOnly; + } + + public void setCreateInstanceOnly(EntityModel<Boolean> createInstanceOnly) { + this.createInstanceOnly = createInstanceOnly; + } + private DbUser privateLoggedUser; // If true, indicates that the model is in the process of logging in automatically @@ -154,6 +164,7 @@ getUserName().getEntityChangedEvent().addListener(this); setPassword(new EntityModel<String>()); getPassword().setIsChangable(false); + setCreateInstanceOnly(new EntityModel<Boolean>(false)); setIsConnecting(true); diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/UserPortalLoginModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/UserPortalLoginModel.java index 838cbce..4e1c33e 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/UserPortalLoginModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/UserPortalLoginModel.java @@ -392,13 +392,19 @@ for (ActionGroup actionGroup : loginModel.getLoggedUserActionGroupList()) { - if (!loginModel.getENGINEUserActionGroupList().contains(actionGroup)) + if (!loginModel.getENGINEUserActionGroupList().contains(actionGroup) && + actionGroup != ActionGroup.CREATE_INSTANCE) { isENGINEUser = false; break; } } + if (isENGINEUser && loginModel.getLoggedUserActionGroupList().contains(ActionGroup.CREATE_INSTANCE)) { + isENGINEUser = false; + loginModel.getCreateInstanceOnly().setEntity(true); + } + loginModel.getIsENGINEUser().setEntity(isENGINEUser); } diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UnitVmModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UnitVmModel.java index c2385ec..4e6a205 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UnitVmModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UnitVmModel.java @@ -1,14 +1,5 @@ package org.ovirt.engine.ui.uicommonweb.models.vms; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Date; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; - import org.ovirt.engine.core.common.businessentities.BootSequence; import org.ovirt.engine.core.common.businessentities.DisplayType; import org.ovirt.engine.core.common.businessentities.InstanceType; @@ -38,6 +29,8 @@ import org.ovirt.engine.ui.frontend.Frontend; import org.ovirt.engine.ui.frontend.INewAsyncCallback; import org.ovirt.engine.ui.uicommonweb.Linq; +import org.ovirt.engine.ui.uicommonweb.TypeResolver; +import org.ovirt.engine.ui.uicommonweb.auth.CurrentUserRole; import org.ovirt.engine.ui.uicommonweb.dataprovider.AsyncDataProvider; import org.ovirt.engine.ui.uicommonweb.models.EntityModel; import org.ovirt.engine.ui.uicommonweb.models.ListModel; @@ -65,6 +58,15 @@ import org.ovirt.engine.ui.uicompat.IEventListener; import org.ovirt.engine.ui.uicompat.PropertyChangedEventArgs; import org.ovirt.engine.ui.uicompat.UIConstants; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Date; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; public class UnitVmModel extends Model { @@ -2372,6 +2374,8 @@ public boolean validate() { boolean hwPartValid = validateHwPart(); + getInstanceTypes().validateEntity(new IValidation[] { new NotEmptyValidation() }); + getDataCenterWithClustersList().validateSelectedItem(new IValidation[] { new NotEmptyValidation() }); setIsSystemTabValid(true); @@ -2776,4 +2780,9 @@ getOverrideMigrationDowntime().setEntity(value != null); getMigrationDowntime().setEntity(value); } + + public boolean isCreateInstanceOnly() { + return ((CurrentUserRole) TypeResolver.getInstance().resolve(CurrentUserRole.class)).isCreateInstanceOnly(); + } + } diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/instancetypes/InstanceTypeManager.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/instancetypes/InstanceTypeManager.java index 6c7bc4e..4b158b9 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/instancetypes/InstanceTypeManager.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/instancetypes/InstanceTypeManager.java @@ -87,7 +87,11 @@ } List<InstanceType> instanceTypes = new ArrayList<InstanceType>(); - instanceTypes.add(CustomInstanceType.INSTANCE); + + // add this only if the user is allowed to + if (!getModel().isCreateInstanceOnly()) { + instanceTypes.add(CustomInstanceType.INSTANCE); + } for (InstanceType instanceType : (Iterable<InstanceType>) res.getReturnValue()) { instanceTypes.add(instanceType); diff --git a/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/auth/LoggedInExtendedPlaceGatekeeper.java b/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/auth/LoggedInExtendedPlaceGatekeeper.java index 117ef9e..b749730 100644 --- a/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/auth/LoggedInExtendedPlaceGatekeeper.java +++ b/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/auth/LoggedInExtendedPlaceGatekeeper.java @@ -4,16 +4,17 @@ import com.google.inject.Inject; import com.gwtplatform.mvp.client.proxy.Gatekeeper; +import org.ovirt.engine.ui.uicommonweb.auth.CurrentUserRole; public class LoggedInExtendedPlaceGatekeeper implements Gatekeeper { private final CurrentUser user; - private final CurrentUserRole userRole; + private final UserPortalCurrentUserRole userRole; @Inject public LoggedInExtendedPlaceGatekeeper(CurrentUser user, CurrentUserRole userRole) { this.user = user; - this.userRole = userRole; + this.userRole = (UserPortalCurrentUserRole) userRole; } @Override diff --git a/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/auth/CurrentUserRole.java b/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/auth/UserPortalCurrentUserRole.java similarity index 82% rename from frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/auth/CurrentUserRole.java rename to frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/auth/UserPortalCurrentUserRole.java index 4eb75a9..256918f 100644 --- a/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/auth/CurrentUserRole.java +++ b/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/auth/UserPortalCurrentUserRole.java @@ -1,6 +1,8 @@ package org.ovirt.engine.ui.userportal.auth; -public class CurrentUserRole { +import org.ovirt.engine.ui.common.auth.CommonCurrentUserRole; + +public class UserPortalCurrentUserRole extends CommonCurrentUserRole { private boolean engineUser = true; diff --git a/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/gin/SystemModule.java b/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/gin/SystemModule.java index 97154a0..ec527ad 100644 --- a/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/gin/SystemModule.java +++ b/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/gin/SystemModule.java @@ -3,13 +3,14 @@ import org.ovirt.engine.ui.common.gin.BaseSystemModule; import org.ovirt.engine.ui.common.section.DefaultLoginSectionPlace; import org.ovirt.engine.ui.common.section.DefaultMainSectionPlace; +import org.ovirt.engine.ui.uicommonweb.auth.CurrentUserRole; import org.ovirt.engine.ui.userportal.ApplicationConstants; import org.ovirt.engine.ui.userportal.ApplicationDynamicMessages; import org.ovirt.engine.ui.userportal.ApplicationMessages; import org.ovirt.engine.ui.userportal.ApplicationResources; import org.ovirt.engine.ui.userportal.ApplicationResourcesWithLookup; import org.ovirt.engine.ui.userportal.ApplicationTemplates; -import org.ovirt.engine.ui.userportal.auth.CurrentUserRole; +import org.ovirt.engine.ui.userportal.auth.UserPortalCurrentUserRole; import org.ovirt.engine.ui.userportal.auth.LoggedInExtendedPlaceGatekeeper; import org.ovirt.engine.ui.userportal.place.ApplicationPlaces; import org.ovirt.engine.ui.userportal.place.UserPortalPlaceManager; @@ -35,7 +36,7 @@ bindCommonInfrastructure(UserPortalPlaceManager.class); bind(LoggedInExtendedPlaceGatekeeper.class).in(Singleton.class); bind(ApplicationInit.class).asEagerSingleton(); - bind(CurrentUserRole.class).in(Singleton.class); + bind(CurrentUserRole.class).to(UserPortalCurrentUserRole.class).in(Singleton.class); } void bindConfiguration() { diff --git a/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/place/UserPortalPlaceManager.java b/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/place/UserPortalPlaceManager.java index 235491b..356518c 100644 --- a/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/place/UserPortalPlaceManager.java +++ b/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/place/UserPortalPlaceManager.java @@ -6,7 +6,8 @@ import org.ovirt.engine.ui.common.section.DefaultLoginSectionPlace; import org.ovirt.engine.ui.common.section.DefaultMainSectionPlace; import org.ovirt.engine.ui.common.uicommon.ClientAgentType; -import org.ovirt.engine.ui.userportal.auth.CurrentUserRole; +import org.ovirt.engine.ui.uicommonweb.auth.CurrentUserRole; +import org.ovirt.engine.ui.userportal.auth.UserPortalCurrentUserRole; import org.ovirt.engine.ui.userportal.section.DefaultMainSectionExtendedPlace; import com.google.gwt.event.shared.EventBus; @@ -16,7 +17,7 @@ public class UserPortalPlaceManager extends ApplicationPlaceManager { - private final CurrentUserRole userRole; + private final UserPortalCurrentUserRole userRole; private final PlaceRequest defaultMainSectionRequest; private final PlaceRequest defaultMainSectionExtendedRequest; @@ -32,7 +33,7 @@ @DefaultMainSectionExtendedPlace String defaultMainSectionExtendedPlace) { super(eventBus, tokenFormatter, user, clientAgentType, PlaceRequestFactory.get(defaultLoginSectionPlace)); - this.userRole = userRole; + this.userRole = (UserPortalCurrentUserRole) userRole; this.defaultMainSectionRequest = PlaceRequestFactory.get(defaultMainSectionPlace); this.defaultMainSectionExtendedRequest = PlaceRequestFactory.get(defaultMainSectionExtendedPlace); } diff --git a/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/section/main/presenter/HeaderPresenterWidget.java b/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/section/main/presenter/HeaderPresenterWidget.java index e307008..997025d 100644 --- a/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/section/main/presenter/HeaderPresenterWidget.java +++ b/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/section/main/presenter/HeaderPresenterWidget.java @@ -3,8 +3,9 @@ import org.ovirt.engine.ui.common.auth.CurrentUser; import org.ovirt.engine.ui.common.presenter.AbstractHeaderPresenterWidget; import org.ovirt.engine.ui.common.widget.tab.TabWidgetHandler; +import org.ovirt.engine.ui.uicommonweb.auth.CurrentUserRole; import org.ovirt.engine.ui.userportal.ApplicationDynamicMessages; -import org.ovirt.engine.ui.userportal.auth.CurrentUserRole; +import org.ovirt.engine.ui.userportal.auth.UserPortalCurrentUserRole; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; @@ -24,7 +25,7 @@ } - private final CurrentUserRole userRole; + private final UserPortalCurrentUserRole userRole; private final AboutPopupPresenterWidget aboutPopup; @Inject @@ -32,7 +33,7 @@ CurrentUserRole userRole, AboutPopupPresenterWidget aboutPopup, ApplicationDynamicMessages dynamicMessages) { super(eventBus, view, user, dynamicMessages.applicationDocTitle(), dynamicMessages.guideUrl()); - this.userRole = userRole; + this.userRole = (UserPortalCurrentUserRole) userRole; this.aboutPopup = aboutPopup; } diff --git a/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/section/main/presenter/popup/vm/VmClonePopupPresenterWidget.java b/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/section/main/presenter/popup/vm/VmClonePopupPresenterWidget.java index 8e512ce..6a9a6df 100644 --- a/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/section/main/presenter/popup/vm/VmClonePopupPresenterWidget.java +++ b/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/section/main/presenter/popup/vm/VmClonePopupPresenterWidget.java @@ -1,10 +1,9 @@ package org.ovirt.engine.ui.userportal.section.main.presenter.popup.vm; -import org.ovirt.engine.ui.common.system.ClientStorage; -import org.ovirt.engine.ui.common.widget.popup.AbstractVmBasedPopupPresenterWidget; - import com.google.gwt.event.shared.EventBus; import com.google.inject.Inject; +import org.ovirt.engine.ui.common.system.ClientStorage; +import org.ovirt.engine.ui.common.widget.popup.AbstractVmBasedPopupPresenterWidget; public class VmClonePopupPresenterWidget extends AbstractVmBasedPopupPresenterWidget<VmClonePopupPresenterWidget.ViewDef> { public interface ViewDef extends AbstractVmBasedPopupPresenterWidget.ViewDef { diff --git a/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/system/ApplicationInit.java b/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/system/ApplicationInit.java index 4d9896a..12e2cf9 100644 --- a/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/system/ApplicationInit.java +++ b/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/system/ApplicationInit.java @@ -10,12 +10,13 @@ import org.ovirt.engine.ui.frontend.Frontend; import org.ovirt.engine.ui.frontend.INewAsyncCallback; import org.ovirt.engine.ui.uicommonweb.ITypeResolver; +import org.ovirt.engine.ui.uicommonweb.auth.CurrentUserRole; import org.ovirt.engine.ui.uicommonweb.models.userportal.UserPortalLoginModel; import org.ovirt.engine.ui.uicompat.Event; import org.ovirt.engine.ui.uicompat.EventArgs; import org.ovirt.engine.ui.uicompat.IEventListener; import org.ovirt.engine.ui.userportal.ApplicationDynamicMessages; -import org.ovirt.engine.ui.userportal.auth.CurrentUserRole; +import org.ovirt.engine.ui.userportal.auth.UserPortalCurrentUserRole; import org.ovirt.engine.ui.userportal.uicommon.model.UserPortalModelInitEvent; import org.ovirt.engine.ui.userportal.utils.ConnectAutomaticallyManager; @@ -26,7 +27,7 @@ public class ApplicationInit extends BaseApplicationInit<UserPortalLoginModel> { - private final CurrentUserRole userRole; + private final UserPortalCurrentUserRole userRole; private final ConnectAutomaticallyManager connectAutomaticallyManager; private final ClientAgentType clientAgentType; @@ -42,8 +43,8 @@ ApplicationDynamicMessages dynamicMessages, ClientAgentType clientAgentType, Frontend frontend) { super(typeResolver, frontendEventsHandler, frontendFailureEventListener, - user, eventBus, loginModelProvider, lockInteractionManager, frontend); - this.userRole = userRole; + user, eventBus, loginModelProvider, lockInteractionManager, frontend, userRole); + this.userRole = (UserPortalCurrentUserRole) userRole; this.connectAutomaticallyManager = connectAutomaticallyManager; this.clientAgentType = clientAgentType; Window.setTitle(dynamicMessages.applicationTitle()); diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/SystemModule.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/SystemModule.java index c437b1b..5e07cbd 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/SystemModule.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/SystemModule.java @@ -1,8 +1,10 @@ package org.ovirt.engine.ui.webadmin.gin; +import org.ovirt.engine.ui.common.auth.CommonCurrentUserRole; import org.ovirt.engine.ui.common.gin.BaseSystemModule; import org.ovirt.engine.ui.common.section.DefaultLoginSectionPlace; import org.ovirt.engine.ui.common.section.DefaultMainSectionPlace; +import org.ovirt.engine.ui.uicommonweb.auth.CurrentUserRole; import org.ovirt.engine.ui.webadmin.ApplicationConstants; import org.ovirt.engine.ui.webadmin.ApplicationDynamicMessages; import org.ovirt.engine.ui.webadmin.ApplicationMessages; @@ -13,6 +15,7 @@ import org.ovirt.engine.ui.webadmin.system.ApplicationInit; import org.ovirt.engine.ui.webadmin.system.InternalConfiguration; import org.ovirt.engine.ui.webadmin.system.PostMessageDispatcher; +import com.google.inject.Singleton; /** * GIN module containing WebAdmin infrastructure and configuration bindings. @@ -32,6 +35,7 @@ bind(ApplicationInit.class).asEagerSingleton(); bind(InternalConfiguration.class).asEagerSingleton(); bind(PostMessageDispatcher.class).asEagerSingleton(); + bind(CurrentUserRole.class).to(CommonCurrentUserRole.class).in(Singleton.class); } void bindConfiguration() { diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/system/ApplicationInit.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/system/ApplicationInit.java index 6659101..6ac41c3 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/system/ApplicationInit.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/system/ApplicationInit.java @@ -1,5 +1,11 @@ package org.ovirt.engine.ui.webadmin.system; +import com.google.gwt.core.client.Scheduler; +import com.google.gwt.core.client.Scheduler.ScheduledCommand; +import com.google.gwt.event.shared.EventBus; +import com.google.gwt.user.client.Window; +import com.google.inject.Inject; +import com.google.inject.Provider; import org.ovirt.engine.core.common.mode.ApplicationMode; import org.ovirt.engine.ui.common.auth.AutoLoginData; import org.ovirt.engine.ui.common.auth.CurrentUser; @@ -12,6 +18,7 @@ import org.ovirt.engine.ui.frontend.FrontendLoginHandler; import org.ovirt.engine.ui.uicommonweb.ITypeResolver; import org.ovirt.engine.ui.uicommonweb.ReportInit; +import org.ovirt.engine.ui.uicommonweb.auth.CurrentUserRole; import org.ovirt.engine.ui.uicommonweb.models.ApplicationModeHelper; import org.ovirt.engine.ui.uicommonweb.models.LoginModel; import org.ovirt.engine.ui.uicompat.Event; @@ -21,13 +28,6 @@ import org.ovirt.engine.ui.webadmin.plugin.restapi.EngineSessionTimeoutData; import org.ovirt.engine.ui.webadmin.plugin.restapi.RestApiSessionManager; import org.ovirt.engine.ui.webadmin.uimode.UiModeData; - -import com.google.gwt.core.client.Scheduler; -import com.google.gwt.core.client.Scheduler.ScheduledCommand; -import com.google.gwt.event.shared.EventBus; -import com.google.gwt.user.client.Window; -import com.google.inject.Inject; -import com.google.inject.Provider; public class ApplicationInit extends BaseApplicationInit<LoginModel> { @@ -42,9 +42,9 @@ LockInteractionManager lockInteractionManager, ApplicationDynamicMessages dynamicMessages, RestApiSessionManager restApiSessionManager, - Frontend frontend) { + Frontend frontend, CurrentUserRole currentUserRole) { super(typeResolver, frontendEventsHandler, frontendFailureEventListener, - user, eventBus, loginModelProvider, lockInteractionManager, frontend); + user, eventBus, loginModelProvider, lockInteractionManager, frontend, currentUserRole); this.restApiSessionManager = restApiSessionManager; Window.setTitle(dynamicMessages.applicationTitle()); -- To view, visit http://gerrit.ovirt.org/27073 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ib2462c227b302e665327226d8e670a7394888fa8 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Tomas Jelinek <tjeli...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches