Juan Hernandez has uploaded a new change for review. Change subject: core, restapi: Fix add permissions ......................................................................
core, restapi: Fix add permissions The refactoring of the authentication mechanism introduced two different identifiers for users and groups: one used internally by the engine and one used by the external directory. The RESTAPI wasn't correctly handling requests to add permissions when the provided identifier was the internal one. The patch fixes the RESTAPI and the backend so that they will accept both identifiers when adding users or groups. Change-Id: I0d05c4bf4ebd242fd3a01a2f9a8d679f687c4982 Bug-Url: https://bugzilla.redhat.com/1064829 Signed-off-by: Juan Hernandez <[email protected]> (cherry picked from commit 072cc1f4c3495b75f344688c9b28691875a12f88) --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddPermissionCommand.java M backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/DbGroupDAO.java M backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/DbGroupDAODbFacadeImpl.java M backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/DbUserDAO.java M backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/DbUserDAODbFacadeImpl.java M backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendAssignedPermissionsResource.java M backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/GroupMapper.java M backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/PermissionMapper.java M backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/UserMapper.java M backend/manager/modules/restapi/types/src/test/java/org/ovirt/engine/api/restapi/types/PermissionMapperTest.java 10 files changed, 335 insertions(+), 80 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/83/25083/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddPermissionCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddPermissionCommand.java index 53c5b91..f330c8f 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddPermissionCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddPermissionCommand.java @@ -6,8 +6,10 @@ import org.ovirt.engine.core.bll.utils.PermissionSubject; import org.ovirt.engine.core.common.AuditLogType; import org.ovirt.engine.core.common.VdcObjectType; +import org.ovirt.engine.core.common.action.DirectoryIdParameters; import org.ovirt.engine.core.common.action.PermissionsOperationsParameters; import org.ovirt.engine.core.common.action.VdcActionType; +import org.ovirt.engine.core.common.action.VdcReturnValueBase; import org.ovirt.engine.core.common.businessentities.DbGroup; import org.ovirt.engine.core.common.businessentities.DbUser; import org.ovirt.engine.core.common.businessentities.Permissions; @@ -15,6 +17,7 @@ import org.ovirt.engine.core.common.businessentities.RoleType; import org.ovirt.engine.core.common.businessentities.VM; import org.ovirt.engine.core.common.errors.VdcBllMessages; +import org.ovirt.engine.core.common.utils.ExternalId; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.utils.transaction.TransactionMethod; import org.ovirt.engine.core.utils.transaction.TransactionSupport; @@ -84,54 +87,65 @@ // Get the parameters: T parameters = getParameters(); - // The user or group given in the parameters may haven't been added to - // the database yet, this will be the case if they don't have an - // internal identifier, if this is the case then they need to be - // added to the database now, before the permission: + // The user or group given in the parameters may haven't been added to the database yet, if this is the case + // then they need to be added to the database now, before the permission: DbUser user = parameters.getUser(); if (user != null) { - user.setId(Guid.newGuid()); - DbUser userFromDb = getDbUserDAO().getByExternalId(user.getDomain(), user.getExternalId()); - if (userFromDb == null) { - getDbUserDAO().save(user); - } else { - user = userFromDb; + Guid id = user.getId(); + String directory = user.getDomain(); + ExternalId externalId = user.getExternalId(); + DbUser existing = getDbUserDAO().getByIdOrExternalId(id, directory, externalId); + if (existing != null) { + user = existing; + } + else { + user = addUser(id, directory, externalId); + if (user == null) { + setSucceeded(false); + return; + } } } DbGroup group = parameters.getGroup(); if (group != null) { - group.setId(Guid.newGuid()); - DbGroup groupFromDb = getAdGroupDAO().getByExternalId(group.getDomain(), group.getExternalId()); - if (groupFromDb == null) { - getAdGroupDAO().save(group); - } else { - group = groupFromDb; + Guid id = group.getId(); + String directory = group.getDomain(); + ExternalId externalId = group.getExternalId(); + DbGroup existing = getAdGroupDAO().getByIdOrExternalId(id, directory, externalId); + if (existing != null) { + group = existing; + } + else { + group = addGroup(id, directory, externalId); + if (group == null) { + setSucceeded(false); + return; + } } } - // The identifier of the owner of the permission can come from the parameters directly or from the user/group - // objects: - Guid ownerId = parameters.getPermission().getad_element_id(); - if (ownerId == null) { - if (user != null) { - ownerId = user.getId(); - } - if (ownerId == null) { - if (group != null) { - ownerId = group.getId(); - } - } + // The identifier of the principal of the permission can come from the parameters directly or from the + // user/group objects: + Guid principalId; + if (user != null) { + principalId = user.getId(); + } + else if (group != null) { + principalId = group.getId(); + } + else { + principalId = parameters.getPermission().getad_element_id(); } final Permissions paramPermission = parameters.getPermission(); Permissions permission = - getPermissionDAO().getForRoleAndAdElementAndObject(paramPermission.getrole_id(), ownerId, + getPermissionDAO().getForRoleAndAdElementAndObject(paramPermission.getrole_id(), principalId, paramPermission.getObjectId()); if (permission == null) { paramPermission.setId(Guid.newGuid()); - paramPermission.setad_element_id(ownerId); + paramPermission.setad_element_id(principalId); TransactionSupport.executeInNewTransaction(new TransactionMethod<Void>() { @Override @@ -185,4 +199,79 @@ } return permissionsSubject; } + + private DbUser addUser(Guid id, String directory, ExternalId externalId) { + // Try to add the user with the external id: + if (directory != null && externalId != null) { + DirectoryIdParameters parameters = new DirectoryIdParameters(); + parameters.setDirectory(directory); + parameters.setId(externalId); + VdcReturnValueBase result = getBackend().runInternalAction(VdcActionType.AddUser, parameters); + if (result.getCanDoAction()) { + id = (Guid) result.getActionReturnValue(); + if (id != null) { + return getDbUserDAO().get(id); + } + return null; + } + } + + // In older versions of the engine the internal id and external id were the same, thus we need to try again + // using the internal id as if it were an external id: + if (directory != null && id != null) { + externalId = ExternalId.fromHex(id.toString()); + DirectoryIdParameters parameters = new DirectoryIdParameters(); + parameters.setDirectory(directory); + parameters.setId(externalId); + VdcReturnValueBase result = getBackend().runInternalAction(VdcActionType.AddUser, parameters); + if (result.getCanDoAction()) { + id = (Guid) result.getActionReturnValue(); + if (id != null) { + return getDbUserDAO().get(id); + } + return null; + } + } + + // There is no such user in the directory: + return null; + } + + private DbGroup addGroup(Guid id, String directory, ExternalId externalId) { + // Try to add the user with the external id: + if (directory != null && externalId != null) { + DirectoryIdParameters parameters = new DirectoryIdParameters(); + parameters.setDirectory(directory); + parameters.setId(externalId); + VdcReturnValueBase result = getBackend().runInternalAction(VdcActionType.AddGroup, parameters); + if (result.getCanDoAction()) { + id = (Guid) result.getActionReturnValue(); + if (id != null) { + return getAdGroupDAO().get(id); + } + return null; + } + } + + // In older versions of the engine the internal id and external id were the same, thus we need to try again + // using the internal id as if it were an external id: + if (directory != null && id != null) { + externalId = ExternalId.fromHex(id.toString()); + DirectoryIdParameters parameters = new DirectoryIdParameters(); + parameters.setDirectory(directory); + parameters.setId(externalId); + VdcReturnValueBase result = getBackend().runInternalAction(VdcActionType.AddGroup, parameters); + if (result.getCanDoAction()) { + id = (Guid) result.getActionReturnValue(); + if (id != null) { + return getAdGroupDAO().get(id); + } + return null; + } + } + + // There is no such group in the directory: + return null; + } + } diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/DbGroupDAO.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/DbGroupDAO.java index 74d7ba0..745b55f 100644 --- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/DbGroupDAO.java +++ b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/DbGroupDAO.java @@ -31,6 +31,17 @@ DbGroup getByExternalId(String domain, ExternalId externalId); /** + * Retrieves a group that matches either the internal or external identifiers given. + * + * @param id the internal identifier + * @param domain the name of the domain + * @param externalId the external identifier + * @return a reference to the group or <code>null</code> if no such group + * can be found in the database + */ + DbGroup getByIdOrExternalId(Guid id, String domain, ExternalId externalId); + + /** * Retrieves the group with the specified name. * * @param name diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/DbGroupDAODbFacadeImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/DbGroupDAODbFacadeImpl.java index 3f1d34d..0140bff 100644 --- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/DbGroupDAODbFacadeImpl.java +++ b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/DbGroupDAODbFacadeImpl.java @@ -33,6 +33,38 @@ .addValue("external_id", externalId.getBytes())); } + + @Override + public DbGroup getByIdOrExternalId(Guid id, String domain, ExternalId externalId) { + // Check if there is a user with the given internal identifier: + if (id != null) { + DbGroup existing = get(id); + if (existing != null) { + return existing; + } + } + + // Check if there is an existing user for the given external identifier: + if (domain != null && externalId != null) { + DbGroup existing = getByExternalId(domain, externalId); + if (existing != null) { + return existing; + } + } + + // In older versions of the engine the internal and external identifiers were the same, so we also need to check + // if the internal id is really an external id: + if (domain != null && id != null) { + externalId = ExternalId.fromHex(id.toString()); + DbGroup existing = getByExternalId(domain, externalId); + if (existing != null) { + return existing; + } + } + + // There is no such existing user: + return null; + } @Override public DbGroup getByName(String name) { return getCallsHandler().executeRead("GetGroupByName", diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/DbUserDAO.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/DbUserDAO.java index a50c4cd..f674ac2 100644 --- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/DbUserDAO.java +++ b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/DbUserDAO.java @@ -42,6 +42,17 @@ DbUser getByExternalId(String domain, ExternalId externalId); /** + * Retrieves a user that matches either the internal or external identifiers given. + * + * @param id the internal identifier + * @param domain the name of the domain + * @param externalId the external identifier + * @return a reference to the user or <code>null</code> if no such user + * can be found in the database + */ + DbUser getByIdOrExternalId(Guid id, String domain, ExternalId externalId); + + /** * Retrieves all users associated with the specified virtual machine. * * @param id diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/DbUserDAODbFacadeImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/DbUserDAODbFacadeImpl.java index 27e143c..9ea9614 100644 --- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/DbUserDAODbFacadeImpl.java +++ b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/DbUserDAODbFacadeImpl.java @@ -90,6 +90,38 @@ } @Override + public DbUser getByIdOrExternalId(Guid id, String domain, ExternalId externalId) { + // Check if there is a user with the given internal identifier: + if (id != null) { + DbUser existing = get(id); + if (existing != null) { + return existing; + } + } + + // Check if there is an existing user for the given external identifier: + if (domain != null && externalId != null) { + DbUser existing = getByExternalId(domain, externalId); + if (existing != null) { + return existing; + } + } + + // In older versions of the engine the internal and external identifiers were the same, so we also need to check + // if the internal id is really an external id: + if (domain != null && id != null) { + externalId = ExternalId.fromHex(id.toString()); + DbUser existing = getByExternalId(domain, externalId); + if (existing != null) { + return existing; + } + } + + // There is no such existing user: + return null; + } + + @Override public List<DbUser> getAllForVm(Guid id) { MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource() .addValue("vm_guid", id); diff --git a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendAssignedPermissionsResource.java b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendAssignedPermissionsResource.java index 583c920..78607e2 100644 --- a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendAssignedPermissionsResource.java +++ b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendAssignedPermissionsResource.java @@ -17,6 +17,8 @@ import org.ovirt.engine.api.model.User; import org.ovirt.engine.api.resource.AssignedPermissionsResource; import org.ovirt.engine.api.resource.PermissionResource; +import org.ovirt.engine.api.restapi.types.GroupMapper; +import org.ovirt.engine.api.restapi.types.UserMapper; import org.ovirt.engine.core.common.VdcObjectType; import org.ovirt.engine.core.common.action.PermissionsOperationsParameters; import org.ovirt.engine.core.common.action.VdcActionType; @@ -100,11 +102,9 @@ isPrincipalSubCollection() ? new String[] {"role.id", "dataCenter|cluster|host|storageDomain|vm|vmpool|template.id"} : new String[] {"role.id", "user|group.id"}); - Permissions entity = map(permission, getPermissionsTemplate(permission)); - return performCreate(VdcActionType.AddPermission, - getPrincipal(entity, permission), - new QueryIdResolver<Guid>(VdcQueryType.GetPermissionById, - IdQueryParameters.class)); + PermissionsOperationsParameters parameters = getParameters(permission); + QueryIdResolver<Guid> resolver = new QueryIdResolver<>(VdcQueryType.GetPermissionById, IdQueryParameters.class); + return performCreate(VdcActionType.AddPermission, parameters, resolver); } @Override @@ -189,27 +189,67 @@ } /** - * @pre completeness of "user|group.id" already validated if not - * user sub-collection + * Find the user or group that the permissions applies to. + * + * @param permission the incoming permission model + * @return the user or group that the permission applies to */ - protected PermissionsOperationsParameters getPrincipal(Permissions entity, Permission permission) { - PermissionsOperationsParameters ret = null; - if (isUserSubCollection() || permission.isSetUser()) { - DbUser user = new DbUser(); - user.setId(isUserSubCollection() - ? targetId - : asGuid(permission.getUser().getId())); - user.setDomain(getCurrent().get(Principal.class).getDomain()); - ret = new PermissionsOperationsParameters(entity, user); - } else if (isGroupSubCollection() || permission.isSetGroup()) { - DbGroup group = new DbGroup(); - group.setId(isGroupSubCollection() - ? targetId - : asGuid(permission.getGroup().getId())); - group.setDomain(getCurrent().get(Principal.class).getDomain()); - ret = new PermissionsOperationsParameters(entity, group); + private Object getPrincipal(Permission permission) { + if (isUserSubCollection()) { + DbUser dbUser = new DbUser(); + dbUser.setId(targetId); + return dbUser; } - return ret; + if (isGroupSubCollection()) { + DbGroup dbGroup = new DbGroup(); + dbGroup.setId(targetId); + return dbGroup; + } + if (permission.isSetUser()) { + User user = permission.getUser(); + DbUser dbUser = UserMapper.map(user, null); + if (dbUser.getDomain() == null) { + dbUser.setDomain(getCurrent().get(Principal.class).getDomain()); + } + return dbUser; + } + if (permission.isSetGroup()) { + Group group = permission.getGroup(); + DbGroup dbGroup = GroupMapper.map(group, null); + if (dbGroup.getDomain() == null) { + dbGroup.setDomain(getCurrent().get(Principal.class).getDomain()); + } + return dbGroup; + } + return null; + } + + /** + * Create the parameters for the permissions operation. + * + * @param model the incoming permission + * @return the parameters for the operation + */ + private PermissionsOperationsParameters getParameters(Permission model) { + Permissions entity = map(model, null); + if (!isPrincipalSubCollection()) { + entity.setObjectId(targetId); + entity.setObjectType(objectType); + } + PermissionsOperationsParameters parameters = new PermissionsOperationsParameters(); + parameters.setPermission(entity); + Object principal = getPrincipal(model); + if (principal instanceof DbUser) { + DbUser user = (DbUser) principal; + entity.setad_element_id(user.getId()); + parameters.setUser(user); + } + if (principal instanceof DbGroup) { + DbGroup group = (DbGroup) principal; + entity.setad_element_id(group.getId()); + parameters.setGroup(group); + } + return parameters; } @Override @@ -221,25 +261,6 @@ permission.setGroup(new Group()); permission.getGroup().setId(permission.getUser().getId()); permission.setUser(null); - } - return permission; - } - - protected Permissions getPermissionsTemplate(Permission perm) { - Permissions permission = new Permissions(); - // allow the target Id to be implicit in the client-provided - // representation - if (isPrincipalSubCollection()) { - permission.setad_element_id(targetId); - permission.setObjectId(getMapper(Permission.class, Guid.class).map(perm, null)); - } else { - if (perm.getUser()!=null) { - permission.setad_element_id(asGuid(perm.getUser().getId())); - } else { //if user is null, group is not null; this was validated before - permission.setad_element_id(asGuid(perm.getGroup().getId())); - } - permission.setObjectId(targetId); - permission.setObjectType(objectType); } return permission; } diff --git a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/GroupMapper.java b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/GroupMapper.java index 5e38e53..896d64e 100644 --- a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/GroupMapper.java +++ b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/GroupMapper.java @@ -4,7 +4,10 @@ import org.ovirt.engine.api.model.Domain; import org.ovirt.engine.api.model.Group; import org.ovirt.engine.core.authentication.DirectoryGroup; +import org.ovirt.engine.api.restapi.utils.GuidUtils; +import org.ovirt.engine.api.restapi.utils.MalformedIdException; import org.ovirt.engine.core.common.businessentities.DbGroup; +import org.ovirt.engine.core.common.utils.ExternalId; import org.ovirt.engine.core.compat.Guid; public class GroupMapper { @@ -36,4 +39,34 @@ return model; } + @Mapping(from = Group.class, to = DbGroup.class) + public static DbGroup map(Group model, DbGroup template) { + DbGroup entity = template != null? template: new DbGroup(); + if (model.isSetName()) { + entity.setName(model.getName()); + } + if (model.isSetId()) { + String id = model.getId(); + try { + entity.setId(GuidUtils.asGuid(id)); + } + catch (MalformedIdException exception) { + // The identifier won't be a UUID if the group comes from /domains/{domain:id}/groups. + } + if (!model.isSetExternalId()) { + entity.setExternalId(ExternalId.fromHex(id)); + } + } + if (model.isSetExternalId()) { + entity.setExternalId(ExternalId.fromHex(model.getExternalId())); + } + if (model.isSetDomain()) { + Domain domain = model.getDomain(); + if (domain.isSetName()) { + entity.setDomain(domain.getName()); + } + } + return entity; + } + } diff --git a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/PermissionMapper.java b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/PermissionMapper.java index 7f77304..6ed5373 100644 --- a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/PermissionMapper.java +++ b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/PermissionMapper.java @@ -27,11 +27,6 @@ if (model.isSetRole() && model.getRole().isSetId()) { entity.setrole_id(GuidUtils.asGuid(model.getRole().getId())); } - if (model.isSetUser() && model.getUser().isSetId()) { - entity.setad_element_id(GuidUtils.asGuid(model.getUser().getId())); - } else if (model.isSetGroup() && model.getGroup().isSetId()) { - entity.setad_element_id(GuidUtils.asGuid(model.getGroup().getId())); - } entity.setObjectId(map(model, template != null ? template.getObjectId() : null)); entity.setObjectType(map(model, template != null ? template.getObjectType() : null)); return entity; diff --git a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/UserMapper.java b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/UserMapper.java index 608dffa..46ec7a1 100644 --- a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/UserMapper.java +++ b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/UserMapper.java @@ -7,7 +7,10 @@ import org.ovirt.engine.api.model.User; import org.ovirt.engine.core.authentication.DirectoryGroup; import org.ovirt.engine.core.authentication.DirectoryUser; +import org.ovirt.engine.api.restapi.utils.GuidUtils; +import org.ovirt.engine.api.restapi.utils.MalformedIdException; import org.ovirt.engine.core.common.businessentities.DbUser; +import org.ovirt.engine.core.common.utils.ExternalId; import org.ovirt.engine.core.compat.Guid; public class UserMapper { @@ -63,4 +66,34 @@ return model; } + @Mapping(from = User.class, to = DbUser.class) + public static DbUser map(User model, DbUser template) { + DbUser entity = template != null? template: new DbUser(); + if (model.isSetName()) { + entity.setLoginName(model.getName()); + } + if (model.isSetId()) { + String id = model.getId(); + try { + entity.setId(GuidUtils.asGuid(id)); + } + catch (MalformedIdException exception) { + // The identifier won't be a UUID if the user comes from /domains/{domain:id}/users. + } + if (!model.isSetExternalId()) { + entity.setExternalId(ExternalId.fromHex(id)); + } + } + if (model.isSetExternalId()) { + entity.setExternalId(ExternalId.fromHex(model.getExternalId())); + } + if (model.isSetDomain()) { + Domain domain = model.getDomain(); + if (domain.isSetName()) { + entity.setDomain(domain.getName()); + } + } + return entity; + } + } diff --git a/backend/manager/modules/restapi/types/src/test/java/org/ovirt/engine/api/restapi/types/PermissionMapperTest.java b/backend/manager/modules/restapi/types/src/test/java/org/ovirt/engine/api/restapi/types/PermissionMapperTest.java index 61be5b9..8382653 100644 --- a/backend/manager/modules/restapi/types/src/test/java/org/ovirt/engine/api/restapi/types/PermissionMapperTest.java +++ b/backend/manager/modules/restapi/types/src/test/java/org/ovirt/engine/api/restapi/types/PermissionMapperTest.java @@ -16,8 +16,6 @@ assertEquals(model.getId(), transform.getId()); assertTrue(transform.isSetRole()); assertEquals(model.getRole().getId(), transform.getRole().getId()); - assertTrue(transform.isSetUser()); - assertEquals(model.getUser().getId(), transform.getUser().getId()); assertTrue(transform.isSetDataCenter()); assertEquals(model.getDataCenter().getId(), transform.getDataCenter().getId()); } -- To view, visit http://gerrit.ovirt.org/25083 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I0d05c4bf4ebd242fd3a01a2f9a8d679f687c4982 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: ovirt-engine-3.4 Gerrit-Owner: Juan Hernandez <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
