Ravi Nori has uploaded a new change for review.

Change subject: userportal : User has insufficient permissions on url 
/domain/domain_id/user
......................................................................

userportal : User has insufficient permissions on url /domain/domain_id/user

>From user portal we should not be able to see alll domain users.
Only those users who have been added to the system need to be displayed.

Change-Id: I2ff611309ec35c4bcca5fcea6457af139c86e8f4
Bug-Url: https://bugzilla.redhat.com/923197
Signed-off-by: Ravi Nori <[email protected]>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetAllDbUsersQuery.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
3 files changed, 67 insertions(+), 6 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/85/14185/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetAllDbUsersQuery.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetAllDbUsersQuery.java
index f58eed0..3e3b19d 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetAllDbUsersQuery.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetAllDbUsersQuery.java
@@ -13,6 +13,6 @@
     protected void executeQueryCommand() {
         getQueryReturnValue().setReturnValue(
                 DbFacade.getInstance().getDbUserDao()
-                        .get(getUserID()));
+                        .getAll());
     }
 }
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 cca5199..3bf5086 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
@@ -338,7 +338,7 @@
         Frontend.RunQuery(VdcQueryType.Search, new SearchParameters("ADUSER@" 
+ getDomain().getSelectedItem() + ": " + searchString, SearchType.AdUser), 
query); //$NON-NLS-1$ //$NON-NLS-2$
     }
 
-    private void OnUserAndAdGroupsLoaded(AdElementListModel adElementListModel)
+    protected void OnUserAndAdGroupsLoaded(AdElementListModel 
adElementListModel)
     {
         if (adElementListModel.getusers() != null && 
adElementListModel.getgroups() != null)
         {
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..420bf5c 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
@@ -1,19 +1,80 @@
 package org.ovirt.engine.ui.uicommonweb.models.users;
 
-import org.ovirt.engine.core.common.queries.AdGroupsSearchParameters;
-import org.ovirt.engine.core.common.queries.AdUsersSearchParameters;
+import java.util.ArrayList;
+import java.util.HashSet;
+import org.ovirt.engine.core.common.businessentities.DbUser;
+import org.ovirt.engine.core.common.businessentities.IVdcQueryable;
+import org.ovirt.engine.core.common.queries.VdcQueryParametersBase;
+import org.ovirt.engine.core.common.queries.VdcQueryReturnValue;
 import org.ovirt.engine.core.common.queries.VdcQueryType;
+import org.ovirt.engine.core.compat.Guid;
+import org.ovirt.engine.core.compat.StringHelper;
 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.models.EntityModel;
 
 public class UserPortalAdElementListModel extends AdElementListModel {
 
     @Override
     protected void findUsers(String searchString, AsyncQuery query) {
-        Frontend.RunQuery(VdcQueryType.AdUsersSearch, new 
AdUsersSearchParameters(searchString), query);
+        Frontend.RunQuery(VdcQueryType.GetAllDbUsers, new 
VdcQueryParametersBase(), getFilteringCallBack());
     }
 
+    private AsyncQuery getFilteringCallBack() {
+        AsyncQuery filteringAsyncQuery = new AsyncQuery();
+        filteringAsyncQuery.setModel(this);
+        filteringAsyncQuery.asyncCallback = new INewAsyncCallback() {
+            @Override
+            public void onSuccess(Object model, Object returnValue) {
+                String searchString = getSearchString();
+                String domain = getDomain().getSelectedItem().toString();
+                AdElementListModel adElementListModel = (AdElementListModel) 
model;
+                HashSet<Guid> excludeUsers = new HashSet<Guid>();
+                if (getExcludeItems() != null) {
+                    for (Object item : getExcludeItems()) {
+                        DbUser a = (DbUser) item;
+                        excludeUsers.add(a.getuser_id());
+                    }
+                }
+                setusers(new ArrayList<EntityModel>());
+                for (IVdcQueryable item : (ArrayList<IVdcQueryable>) 
((VdcQueryReturnValue) returnValue).getReturnValue()) {
+                    DbUser dbUser = (DbUser) item;
+                    if (matchesSearchFilter(dbUser, excludeUsers, domain, 
searchString)) {
+                        EntityModel tempVar2 = new EntityModel();
+                        tempVar2.setEntity(dbUser);
+                        getusers().add(tempVar2);
+                    }
+                }
+                OnUserAndAdGroupsLoaded(adElementListModel);
+            }
+
+            private boolean matchesSearchFilter(DbUser dbUser, HashSet<Guid> 
excludeUsers,
+                    String domain,
+                    String searchString) {
+                return !excludeUsers.contains(dbUser.getuser_id())
+                        && dbUser.getdomain().equals(domain)
+                        && (StringHelper.isNullOrEmpty(searchString)
+                        || dbUserMatchesSearchFilter(dbUser, 
searchString.toLowerCase()));
+            }
+
+            private boolean dbUserMatchesSearchFilter(DbUser dbUser, String 
searchString) {
+                return matchesSearchFilter(dbUser.getname().toLowerCase(), 
searchString)
+                        || 
matchesSearchFilter(dbUser.getsurname().toLowerCase(), searchString)
+                        || 
matchesSearchFilter(dbUser.getusername().toLowerCase(), searchString);
+            }
+
+            private boolean matchesSearchFilter(String name, String 
searchString) {
+                return name.startsWith(searchString);
+            }
+        };
+        return filteringAsyncQuery;
+    }
+
+    @Override
     protected void findGroups(String searchString, AsyncQuery query) {
-        Frontend.RunQuery(VdcQueryType.AdGroupsSearch, new 
AdGroupsSearchParameters(searchString), query);
+        AdElementListModel adElementListModel = (AdElementListModel) 
query.getModel();
+        adElementListModel.setgroups(new ArrayList<EntityModel>());
+        super.OnUserAndAdGroupsLoaded(adElementListModel);
     }
 }


--
To view, visit http://gerrit.ovirt.org/14185
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I2ff611309ec35c4bcca5fcea6457af139c86e8f4
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Ravi Nori <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to