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
