@Override public Permission addParents(Permission permission) { // REVISIT for entity-level permissions we need an isUser // flag on the permissions entity in order to distinguish // between the user and group cases if (isGroupSubCollection() && permission.isSetUser() && permission.getUser().isSetId()) { permission.setGroup(new Group()); permission.getGroup().setId(permission.getUser().getId()); permission.setUser(null); } return permission; }
/** * injects user/group base on permission owner type * @param entity the permission to map * @param user the permission owner * @return permission */ public Permission map(org.ovirt.engine.core.common.businessentities.Permission entity, DbUser user) { Permission template = new Permission(); if (entity.getAdElementId() != null) { if (isUser(user)) { template.setUser(new User()); template.getUser().setId(entity.getAdElementId().toString()); } else { template.setGroup(new Group()); template.getGroup().setId(entity.getAdElementId().toString()); } } return map(entity, template); }
@Test public void testAddGroupPermission() { setUriInfo(setUpBasicUriExpectations()); setUpCreationExpectations(ActionType.AddPermission, PermissionsOperationsParameters.class, new String[] { "Group.Id", "Permission.AdElementId", "Permission.ObjectId", "Permission.RoleId" }, new Object[] { GUIDS[1], GUIDS[1], targetId, GUIDS[3] }, true, true, GUIDS[0], QueryType.GetPermissionById, IdQueryParameters.class, new String[] { "Id" }, new Object[] { GUIDS[0] }, getEntity(0)); Permission model = new Permission(); model.setRole(new Role()); model.getRole().setId(GUIDS[3].toString()); model.setGroup(new Group()); model.getGroup().setId(GUIDS[1].toString()); Response response = collection.add(model); assertEquals(201, response.getStatus()); assertTrue(response.getEntity() instanceof Permission); verifyModel((Permission) response.getEntity(), 0); }
@Test public void testAddIncompletePermission() { Permission model = new Permission(); model.setGroup(new Group()); model.getGroup().setId(GUIDS[1].toString()); model.setRole(new Role()); model.getRole().setId(GUIDS[3].toString()); setUriInfo(setUpBasicUriExpectations()); verifyIncompleteException( assertThrows(WebApplicationException.class, () -> collection.add(model)), "Permission", "add", "dataCenter|cluster|host|storageDomain|vm|vmPool|template.id"); }
to.setGroup(adaptIn(from.getGroup()));