From a6abbe4637c8bc9e22ae048fa1e09bc9690c8a5e Mon Sep 17 00:00:00 2001 From: alena Date: Thu, 11 Nov 2010 18:09:02 -0800 Subject: [PATCH] bug 7122: don't return System user in listUsers response status 7122: resolved fixed --- .../cloud/server/ManagementServerImpl.java | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/server/src/com/cloud/server/ManagementServerImpl.java b/server/src/com/cloud/server/ManagementServerImpl.java index 4352700eea1..bfb5444e4df 100755 --- a/server/src/com/cloud/server/ManagementServerImpl.java +++ b/server/src/com/cloud/server/ManagementServerImpl.java @@ -1491,10 +1491,10 @@ public class ManagementServerImpl implements ManagementServer { // default domainId to the admin's domain domainId = ((account == null) ? DomainVO.ROOT_DOMAIN : account.getDomainId()); } - + Filter searchFilter = new Filter(UserAccountVO.class, "id", true, cmd.getStartIndex(), cmd.getPageSizeVal()); - Object id = cmd.getId(); + Long id = cmd.getId(); Object username = cmd.getUsername(); Object type = cmd.getAccountType(); Object accountName = cmd.getAccountName(); @@ -1503,7 +1503,17 @@ public class ManagementServerImpl implements ManagementServer { SearchBuilder sb = _userAccountDao.createSearchBuilder(); sb.and("username", sb.entity().getUsername(), SearchCriteria.Op.LIKE); - sb.and("id", sb.entity().getId(), SearchCriteria.Op.EQ); + if (id != null && id == 1) { + //system user should NOT be searchable + List emptyList = new ArrayList(); + return emptyList; + } else if (id != null) { + sb.and("id", sb.entity().getId(), SearchCriteria.Op.EQ); + } else { + //this condition is used to exclude system user from the search results + sb.and("id", sb.entity().getId(), SearchCriteria.Op.NEQ); + } + sb.and("type", sb.entity().getType(), SearchCriteria.Op.EQ); sb.and("domainId", sb.entity().getDomainId(), SearchCriteria.Op.EQ); sb.and("accountName", sb.entity().getAccountName(), SearchCriteria.Op.LIKE); @@ -1536,6 +1546,9 @@ public class ManagementServerImpl implements ManagementServer { if (id != null) { sc.setParameters("id", id); + } else { + //Don't return system user, search builder with NEQ + sc.setParameters("id", 1); } if (type != null) {