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