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

Reply via email to