Martin Peřina has uploaded a new change for review.

Change subject: core: frontend: Fix Permissions.id value on instance creattion
......................................................................

core: frontend: Fix Permissions.id value on instance creattion

1. Reverts setting Permissions.id to Guid.Empty introduced in patch
   I35aad0115394fde0bf30a27b3eb47c46496bd821.

2. It sets Permission.id to Guid.Empty in GWT code, because correct id
   is set in AddPermissionCommand

Change-Id: I9617cf0ca558730bce9bf9e3209f472859b42664
Bug-Url: https://bugzilla.redhat.com/1195119
Signed-off-by: Martin Perina <mper...@redhat.com>
---
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/Permissions.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/configure/PermissionListModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/configure/SystemPermissionListModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/quota/QuotaUserListModel.java
4 files changed, 25 insertions(+), 11 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/94/38594/1

diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/Permissions.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/Permissions.java
index cef11ae..9fe9379 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/Permissions.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/Permissions.java
@@ -20,12 +20,20 @@
 
     private String namespace;
 
+    /**
+     * WARNING: When this constructor is invoked inside GWT compiled code, 
please set {@code id} to
+     * {@code Guid.Empty} before sending this instance to backend, otherwise 
nasty NPE will be raised.
+     */
     public Permissions() {
         this (Guid.Empty, Guid.Empty, null, null);
     }
 
+    /**
+     * WARNING: When this constructor is invoked inside GWT compiled code, 
please set {@code id} to
+     * {@code Guid.Empty} before sending this instance to backend, otherwise 
nasty NPE will be raised.
+     */
     public Permissions(Guid adElementId, Guid roleId, Guid objectId, 
VdcObjectType objectType) {
-        this.id = Guid.Empty;
+        this.id = Guid.newGuid();
         this.adElementId = adElementId;
         this.roleId = roleId;
         this.objectId = objectId;
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/configure/PermissionListModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/configure/PermissionListModel.java
index 0785671..444b418 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/configure/PermissionListModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/configure/PermissionListModel.java
@@ -244,6 +244,9 @@
         for (DbUser user : items)
         {
             Permissions perm = new Permissions(user.getId(), role.getId(), 
getEntityGuid(), getObjectType());
+            // set id to Guid.Empty as GWT cannot generate new random UUID, 
AddPermissionCommand will replace
+            // Guid.Empty with correct Guid
+            perm.setId(Guid.Empty);
             if (user.isGroup())
             {
                 DbGroup group = new DbGroup();
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/configure/SystemPermissionListModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/configure/SystemPermissionListModel.java
index 2b63ad5..4eec339 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/configure/SystemPermissionListModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/configure/SystemPermissionListModel.java
@@ -13,6 +13,7 @@
 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.ui.frontend.AsyncQuery;
 import org.ovirt.engine.ui.frontend.Frontend;
 import org.ovirt.engine.ui.frontend.INewAsyncCallback;
@@ -162,10 +163,10 @@
         ArrayList<VdcActionParametersBase> list = new 
ArrayList<VdcActionParametersBase>();
         for (DbUser user : items)
         {
-            Permissions tempVar = new Permissions();
-            tempVar.setad_element_id(user.getId());
-            tempVar.setrole_id(role.getId());
-            Permissions perm = tempVar;
+            Permissions perm = new Permissions(user.getId(), role.getId(), 
null, null);
+            // set id to Guid.Empty as GWT cannot generate new random UUID, 
AddPermissionCommand will replace
+            // Guid.Empty with correct Guid
+            perm.setId(Guid.Empty);
 
             if (user.isGroup())
             {
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/quota/QuotaUserListModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/quota/QuotaUserListModel.java
index 643fac5..ebb2e6c 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/quota/QuotaUserListModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/quota/QuotaUserListModel.java
@@ -252,12 +252,14 @@
         PermissionsOperationsParameters permissionParams;
         for (DbUser user : items)
         {
-            Permissions tempVar2 = new Permissions();
-            tempVar2.setad_element_id(user.getId());
-            tempVar2.setrole_id(ApplicationGuids.quotaConsumer.asGuid());
-            Permissions perm = tempVar2;
-            perm.setObjectId(((Quota) getEntity()).getId());
-            perm.setObjectType(VdcObjectType.Quota);
+            Permissions perm = new Permissions(
+                    user.getId(),
+                    ApplicationGuids.quotaConsumer.asGuid(),
+                    ((Quota) getEntity()).getId(),
+                    VdcObjectType.Quota);
+            // set id to Guid.Empty as GWT cannot generate new random UUID, 
AddPermissionCommand will replace
+            // Guid.Empty with correct Guid
+            perm.setId(Guid.Empty);
 
             permissionParams = new PermissionsOperationsParameters();
             if (user.isGroup())


-- 
To view, visit https://gerrit.ovirt.org/38594
To unsubscribe, visit https://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I9617cf0ca558730bce9bf9e3209f472859b42664
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: ovirt-engine-3.5
Gerrit-Owner: Martin Peřina <mper...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to