Ravi Nori has uploaded a new change for review.

Change subject: engine : query execution failed due to insufficient permissions
......................................................................

engine : query execution failed due to insufficient permissions

Adding a disk using a user with DiskCreator
privileges logs insufficient permissions
message in the log

Change-Id: I11adfe9c49d1e57ecc88d1828ed63884016c33e8
Bug-Url: https://bugzilla.redhat.com/1153043
Signed-off-by: Ravi Nori <rn...@redhat.com>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetTasksStatusesByTasksIDsQuery.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/VdcQueryType.java
2 files changed, 11 insertions(+), 2 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/44/34844/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetTasksStatusesByTasksIDsQuery.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetTasksStatusesByTasksIDsQuery.java
index 2cf21eb..9937105 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetTasksStatusesByTasksIDsQuery.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetTasksStatusesByTasksIDsQuery.java
@@ -2,6 +2,7 @@
 
 import org.ovirt.engine.core.bll.tasks.CommandCoordinatorUtil;
 import 
org.ovirt.engine.core.common.queries.GetTasksStatusesByTasksIDsParameters;
+import org.ovirt.engine.core.dal.dbbroker.DbFacade;
 
 public class GetTasksStatusesByTasksIDsQuery<P extends 
GetTasksStatusesByTasksIDsParameters>
         extends QueriesCommandBase<P> {
@@ -11,6 +12,14 @@
 
     @Override
     protected void executeQueryCommand() {
-        
getQueryReturnValue().setReturnValue(CommandCoordinatorUtil.pollTasks(getParameters().getTasksIDs()));
+        if (getUser().isAdmin() ||
+                
DbFacade.getInstance().getAsyncTaskDao().getVdsmTaskIdsByUser(getUserID()).
+                        containsAll(getParameters().getTasksIDs())) {
+            
getQueryReturnValue().setReturnValue(CommandCoordinatorUtil.pollTasks(getParameters().getTasksIDs()));
+        } else {
+            String errMessage = "Query execution failed due to insufficient 
permissions. Users can only query tasks started by them.";
+            log.error(errMessage);
+            getQueryReturnValue().setExceptionString(errMessage);
+        }
     }
 }
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 435e101..83664cd 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
@@ -280,7 +280,7 @@
     GetoVirtISOs,
 
     // Async Tasks
-    GetTasksStatusesByTasksIDs,
+    GetTasksStatusesByTasksIDs(VdcQueryAuthType.User),
 
     // Quota
     GetQuotaByStoragePoolId,


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I11adfe9c49d1e57ecc88d1828ed63884016c33e8
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: ovirt-engine-3.5
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