Ravi Nori has uploaded a new change for review.

Change subject: engine: UserRole permission on System/DC/Cluster doesn't work 
as expected
......................................................................

engine: UserRole permission on System/DC/Cluster doesn't work as expected

When granting UserRole permission on System/DC/Cluster,
it allows the user to see all the VMs under that entity
(System/DC/Cluster), including Pooled VMs.  The result is
that he will see all the VMs (including the Pooled VM)
in the User Portal, but he won't see the VM Pools
(as the logic is to show only pools that the user has
no UserRole on at least one VM from this pool).

Change-Id: If106d64939b80de65fb7052e97f69a6d5de0b010
Bug-Url: https://bugzilla.redhat.com/863074
Signed-off-by: Ravi Nori <rn...@redhat.com>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetAllVmsAndVmPoolsQuery.java
A 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetAllVmsForUserQuery.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/VdcQueryType.java
3 files changed, 24 insertions(+), 1 deletion(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/41/28041/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetAllVmsAndVmPoolsQuery.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetAllVmsAndVmPoolsQuery.java
index 7044d2c..045d4c3 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetAllVmsAndVmPoolsQuery.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetAllVmsAndVmPoolsQuery.java
@@ -18,7 +18,7 @@
     protected void executeQueryCommand() {
         boolean isSucceeded = true;
         List<Object> retValList = new ArrayList<Object>();
-        VdcQueryReturnValue queryResult = 
Backend.getInstance().runInternalQuery(VdcQueryType.GetAllVms, getParameters());
+        VdcQueryReturnValue queryResult = 
Backend.getInstance().runInternalQuery(VdcQueryType.GetAllVmsForUser, 
getParameters());
         if (queryResult != null && queryResult.getSucceeded()) {
             retValList.addAll(queryResult.<List<VM>>getReturnValue());
         } else {
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetAllVmsForUserQuery.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetAllVmsForUserQuery.java
new file mode 100644
index 0000000..60c630b
--- /dev/null
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetAllVmsForUserQuery.java
@@ -0,0 +1,22 @@
+package org.ovirt.engine.core.bll;
+
+import org.ovirt.engine.core.common.businessentities.VM;
+import org.ovirt.engine.core.common.queries.VdcQueryParametersBase;
+
+import java.util.List;
+
+public class GetAllVmsForUserQuery<P extends VdcQueryParametersBase> extends 
QueriesCommandBase<P> {
+    public GetAllVmsForUserQuery(P parameters) {
+        super(parameters);
+    }
+
+    @Override
+    protected void executeQueryCommand() {
+        List<VM> vmsList = getDbFacade()
+                .getVmDao().getAllForUser(getUserID());
+        for (VM vm : vmsList) {
+            VmHandler.updateVmGuestAgentVersion(vm);
+        }
+        getQueryReturnValue().setReturnValue(vmsList);
+    }
+}
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/VdcQueryType.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/VdcQueryType.java
index a96559f..dc115a6 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/VdcQueryType.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/VdcQueryType.java
@@ -8,6 +8,7 @@
     GetVmByVmId(VdcQueryAuthType.User),
     GetVmByVmNameForDataCenter(VdcQueryAuthType.User),
     GetAllVms(VdcQueryAuthType.User),
+    GetAllVmsForUser(VdcQueryAuthType.User),
     GetVmsRunningOnOrMigratingToVds,
     GetVmsByStorageDomain,
     GetVmsByInstanceTypeId,


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: If106d64939b80de65fb7052e97f69a6d5de0b010
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Ravi Nori <rn...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to