mooli tayer has uploaded a new change for review. Change subject: frontend: changes in add permissions popup ......................................................................
frontend: changes in add permissions popup in the add permissions popup in the user portal only, when a user adds a role to a vm: 1.) feature request - Show only users from the the users domain 2.) bug fix - The selected domain (now there's always only one option) should be the one actually participating in the search, and not an arbitrary one. Change-Id: Ia6084b6b100c5fbb39a9d7738661bad69b3aaa8e Bug-Url : https://bugzilla.redhat.com/show_bug.cgi?id=923191 Signed-off-by: Mooli Tayer <[email protected]> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetDomainListQuery.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/AdGroupsSearchParameters.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/AdUsersSearchParameters.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/GetDomainListParameters.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/dataprovider/AsyncDataProvider.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/users/AdElementListModel.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/users/UserPortalAdElementListModel.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/RunOnceModel.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmModelBehaviorBase.java 9 files changed, 90 insertions(+), 17 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/36/16036/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetDomainListQuery.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetDomainListQuery.java index c70ed23..bd8a53b 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetDomainListQuery.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetDomainListQuery.java @@ -1,9 +1,13 @@ package org.ovirt.engine.core.bll; +import java.util.ArrayList; import java.util.Collections; import java.util.List; +import org.apache.commons.lang.StringUtils; import org.ovirt.engine.core.bll.adbroker.LdapBrokerUtils; +import org.ovirt.engine.core.bll.session.SessionDataContainer; +import org.ovirt.engine.core.common.interfaces.IVdcUser; import org.ovirt.engine.core.common.queries.GetDomainListParameters; import org.ovirt.engine.core.common.queries.VdcQueryParametersBase; @@ -15,9 +19,24 @@ @Override protected void executeQueryCommand() { boolean filterInternalDomain = false; + boolean currentDomainOnly = false; // get concrete parameters object - if (getParameters() instanceof GetDomainListParameters) { - filterInternalDomain = ((GetDomainListParameters)getParameters()).getFilterInternalDomain(); + P genericParameters = getParameters(); + if (genericParameters instanceof GetDomainListParameters) { + GetDomainListParameters parameters = (GetDomainListParameters) getParameters(); + filterInternalDomain = parameters.getFilterInternalDomain(); + currentDomainOnly = parameters.getCurrentDomainOnly(); + } + String sessionId = getParameters().getSessionId(); + if (currentDomainOnly && !StringUtils.isEmpty(sessionId)) { + IVdcUser user = SessionDataContainer.getInstance().getUser(sessionId, false); + String domainController = user.getDomainControler(); + if ( !StringUtils.isEmpty(domainController) ){ + List<String> domains = new ArrayList<>(); + domains.add(domainController); + getQueryReturnValue().setReturnValue(domains); + return; + } } List<String> domains = LdapBrokerUtils.getDomainsList(filterInternalDomain); Collections.sort(domains); diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/AdGroupsSearchParameters.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/AdGroupsSearchParameters.java index 6a8910c..fe210b2 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/AdGroupsSearchParameters.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/AdGroupsSearchParameters.java @@ -10,6 +10,8 @@ public class AdGroupsSearchParameters extends SearchParameters { private static final long serialVersionUID = -4695945267348177923L; + private String domain; + public AdGroupsSearchParameters(String searchPattern) { super(searchPattern, SearchType.AdGroup); } @@ -18,10 +20,16 @@ super(searchPattern, SearchType.AdGroup, caseSensitive); } + public AdGroupsSearchParameters(String searchPattern, String domain) { + super(searchPattern, SearchType.AdGroup); + this.domain = domain; + } + /** Prepends "AdGroups:" to the given search string */ @Override public String getSearchPattern() { - return getSearchTypeValue() + ": " + super.getSearchPattern(); + return getSearchTypeValue() + ((domain != null)? "@" + domain : "") + + ": " + super.getSearchPattern(); } } diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/AdUsersSearchParameters.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/AdUsersSearchParameters.java index c397de1..82edb3d 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/AdUsersSearchParameters.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/AdUsersSearchParameters.java @@ -10,6 +10,8 @@ public class AdUsersSearchParameters extends SearchParameters { private static final long serialVersionUID = -2788510087018816667L; + private String domain; + public AdUsersSearchParameters(String searchPattern) { super(searchPattern, SearchType.AdUser); } @@ -18,10 +20,16 @@ super(searchPattern, SearchType.AdUser, caseSensitive); } + public AdUsersSearchParameters(String searchPattern, String domain) { + super(searchPattern , SearchType.AdUser ); + this.domain = domain; + } + /** Prepends "AdUsers:" to the given search string */ @Override public String getSearchPattern() { - return getSearchTypeValue() + ": " + super.getSearchPattern(); + return getSearchTypeValue() + ((domain != null)? ("@" + domain) : "") + + ": " + super.getSearchPattern(); } } diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/GetDomainListParameters.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/GetDomainListParameters.java index c22e0fd..bde9845 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/GetDomainListParameters.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/GetDomainListParameters.java @@ -1,6 +1,8 @@ package org.ovirt.engine.core.common.queries; public class GetDomainListParameters extends VdcQueryParametersBase{ + private boolean currentDomainOnly; + private boolean filterInternalDomain; public GetDomainListParameters() { @@ -10,6 +12,14 @@ this.setFilterInternalDomain(filterInternalDomain); } + public void setCurrentDomainOnly(boolean currentDomainOnly) { + this.currentDomainOnly = currentDomainOnly; + } + + public boolean getCurrentDomainOnly() { + return currentDomainOnly; + } + public void setFilterInternalDomain(boolean filterInternalDomain) { this.filterInternalDomain = filterInternalDomain; } diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/dataprovider/AsyncDataProvider.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/dataprovider/AsyncDataProvider.java index 00b5cec..b138a1a 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/dataprovider/AsyncDataProvider.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/dataprovider/AsyncDataProvider.java @@ -944,7 +944,7 @@ aQuery); } - public static void getDomainList(AsyncQuery aQuery, boolean filterInternalDomain) { + public static void getDomainList(AsyncQuery aQuery, boolean currentDomainOnly, boolean filterInternalDomain) { aQuery.converterCallback = new IAsyncConverter() { @Override public Object Convert(Object source, AsyncQuery _asyncQuery) @@ -954,6 +954,7 @@ } }; GetDomainListParameters tempVar = new GetDomainListParameters(); + tempVar.setCurrentDomainOnly(currentDomainOnly); tempVar.setFilterInternalDomain(filterInternalDomain); Frontend.RunQuery(VdcQueryType.GetDomainList, tempVar, aQuery); } diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/users/AdElementListModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/users/AdElementListModel.java index 482b7aa..9cd421d 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/users/AdElementListModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/users/AdElementListModel.java @@ -171,15 +171,7 @@ setIsTimerDisabled(true); - - AsyncDataProvider.getDomainList(new AsyncQuery(this, new INewAsyncCallback() { - - @Override - public void onSuccess(Object model, Object result) { - populateDomains((List<String>) result); - } - }), false); - + getDomainListAsync(); AsyncDataProvider.getRoleList(new AsyncQuery(this, new INewAsyncCallback() { @@ -191,6 +183,17 @@ })); } + protected void getDomainListAsync() { + AsyncDataProvider.getDomainList(new AsyncQuery(this, new INewAsyncCallback() { + + @Override + public void onSuccess(Object model, Object result) { + populateDomains((List<String>) result); + } + }),false, false); + + } + protected void populateDomains(List<String> domains){ getDomain().setItems(domains); getDomain().setSelectedItem(Linq.firstOrDefault(domains)); diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/users/UserPortalAdElementListModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/users/UserPortalAdElementListModel.java index d1baa4e..0da4782 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/users/UserPortalAdElementListModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/users/UserPortalAdElementListModel.java @@ -5,15 +5,36 @@ import org.ovirt.engine.core.common.queries.VdcQueryType; import org.ovirt.engine.ui.frontend.AsyncQuery; import org.ovirt.engine.ui.frontend.Frontend; +import org.ovirt.engine.ui.frontend.INewAsyncCallback; +import org.ovirt.engine.ui.uicommonweb.dataprovider.AsyncDataProvider; + +import java.util.List; public class UserPortalAdElementListModel extends AdElementListModel { @Override protected void findUsers(String searchString, AsyncQuery query) { - Frontend.RunQuery(VdcQueryType.AdUsersSearch, new AdUsersSearchParameters(searchString), query); + Frontend.RunQuery(VdcQueryType.AdUsersSearch, new AdUsersSearchParameters(searchString, + getDomain().getSelectedItem().toString()), query); } + @Override protected void findGroups(String searchString, AsyncQuery query) { - Frontend.RunQuery(VdcQueryType.AdGroupsSearch, new AdGroupsSearchParameters(searchString), query); + Frontend.RunQuery(VdcQueryType.AdGroupsSearch, new AdGroupsSearchParameters(searchString, + getDomain().getSelectedItem().toString()), + query); + } + + @Override + protected void getDomainListAsync() { + // get only current domain + AsyncDataProvider.getDomainList(new AsyncQuery(this, new INewAsyncCallback() { + + @Override + public void onSuccess(Object model, Object result) { + populateDomains((List<String>) result); + } + }), true, false); + } } diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/RunOnceModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/RunOnceModel.java index dc3636d..0e0c411 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/RunOnceModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/RunOnceModel.java @@ -744,7 +744,9 @@ getSysPrepDomainName().setSelectedItem(selectedDomain); } } - }), true); + }), + false, + true); } @Override diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmModelBehaviorBase.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmModelBehaviorBase.java index c068026..297be88 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmModelBehaviorBase.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmModelBehaviorBase.java @@ -228,6 +228,7 @@ } }, getModel().getHash()), + false, true); } -- To view, visit http://gerrit.ovirt.org/16036 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ia6084b6b100c5fbb39a9d7738661bad69b3aaa8e Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: mooli tayer <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
