From 5eb33aa2b4a62c60c7296e17e165b8bdf2a81016 Mon Sep 17 00:00:00 2001 From: ayalaben Date: Wed, 27 Dec 2017 12:05:35 +0200 Subject: Add Item Owner to item Change-Id: I91ce289159057bd5c179c64131d74a24aa83ac9f Issue-ID: SDC-800 Signed-off-by: ayalaben --- .../openecomp/sdcrests/item/rest/mapping/MapItemToDto.java | 1 + .../java/org/openecomp/sdcrests/item/types/ItemDto.java | 9 +++++++++ .../rest/services/VendorLicenseModelsImpl.java | 1 + .../sdcrests/vsp/rest/mapping/MapItemToVspDetailsDto.java | 1 + .../vsp/rest/services/VendorSoftwareProductsImpl.java | 1 + .../vendorsoftwareproducts/types/VspDetailsDto.java | 9 +++++++++ .../dao/impl/ItemPermissionsManagerImpl.java | 13 +++++++++++++ .../main/java/org/openecomp/sdc/common/errors/Messages.java | 1 + .../main/java/org/openecomp/sdc/versioning/ItemManager.java | 2 ++ .../main/java/org/openecomp/sdc/versioning/types/Item.java | 9 +++++++++ .../versioning/dao/impl/zusammen/ItemZusammenDaoImpl.java | 5 +++++ .../org/openecomp/sdc/versioning/impl/ItemManagerImpl.java | 11 +++++++++++ 12 files changed, 63 insertions(+) (limited to 'openecomp-be') diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/item-rest/item-rest-services/src/main/java/org/openecomp/sdcrests/item/rest/mapping/MapItemToDto.java b/openecomp-be/api/openecomp-sdc-rest-webapp/item-rest/item-rest-services/src/main/java/org/openecomp/sdcrests/item/rest/mapping/MapItemToDto.java index 26bd58d950..0448407b99 100644 --- a/openecomp-be/api/openecomp-sdc-rest-webapp/item-rest/item-rest-services/src/main/java/org/openecomp/sdcrests/item/rest/mapping/MapItemToDto.java +++ b/openecomp-be/api/openecomp-sdc-rest-webapp/item-rest/item-rest-services/src/main/java/org/openecomp/sdcrests/item/rest/mapping/MapItemToDto.java @@ -11,5 +11,6 @@ public class MapItemToDto extends MappingBase { target.setType(source.getType()); target.setName(source.getName()); target.setDescription(source.getDescription()); + target.setOwner(source.getOwner()); } } diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/item-rest/item-rest-types/src/main/java/org/openecomp/sdcrests/item/types/ItemDto.java b/openecomp-be/api/openecomp-sdc-rest-webapp/item-rest/item-rest-types/src/main/java/org/openecomp/sdcrests/item/types/ItemDto.java index 1eebf19750..3ca77c27b3 100644 --- a/openecomp-be/api/openecomp-sdc-rest-webapp/item-rest/item-rest-types/src/main/java/org/openecomp/sdcrests/item/types/ItemDto.java +++ b/openecomp-be/api/openecomp-sdc-rest-webapp/item-rest/item-rest-types/src/main/java/org/openecomp/sdcrests/item/types/ItemDto.java @@ -5,6 +5,7 @@ public class ItemDto { private String type; private String name; private String description; + private String owner; public String getId() { return id; @@ -37,4 +38,12 @@ public class ItemDto { public void setDescription(String description) { this.description = description; } + + public String getOwner() { + return owner; + } + + public void setOwner(String owner) { + this.owner = owner; + } } diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/services/VendorLicenseModelsImpl.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/services/VendorLicenseModelsImpl.java index 2b8e5a343e..77152c6fbb 100644 --- a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/services/VendorLicenseModelsImpl.java +++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/services/VendorLicenseModelsImpl.java @@ -142,6 +142,7 @@ public class VendorLicenseModelsImpl implements VendorLicenseModels { Item item = new Item(); item.setType(ItemType.vlm.name()); + item.setOwner(user); item.setName(request.getVendorName()); item.setDescription(request.getDescription()); diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/mapping/MapItemToVspDetailsDto.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/mapping/MapItemToVspDetailsDto.java index ad45e63330..caa05391c8 100644 --- a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/mapping/MapItemToVspDetailsDto.java +++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/mapping/MapItemToVspDetailsDto.java @@ -14,5 +14,6 @@ public class MapItemToVspDetailsDto extends MappingBase { target.setVendorId((String) source.getProperties().get(VspItemProperty.VENDOR_ID)); target.setVendorName((String) source.getProperties().get(VspItemProperty.VENDOR_NAME)); target.setOnboardingMethod((String) source.getProperties().get(VspItemProperty.ONBOARDING_METHOD)); + target.setOwner(source.getOwner()); } } diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/services/VendorSoftwareProductsImpl.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/services/VendorSoftwareProductsImpl.java index feffb91703..b92a431714 100644 --- a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/services/VendorSoftwareProductsImpl.java +++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/services/VendorSoftwareProductsImpl.java @@ -158,6 +158,7 @@ public class VendorSoftwareProductsImpl implements VendorSoftwareProducts { case Manual: Item item = new MapVspDescriptionDtoToItem().applyMapping(vspRequestDto, Item.class); item.setType(ItemType.vsp.name()); + item.setOwner(user); item.addProperty(VspItemProperty.ONBOARDING_METHOD, onboardingMethod.name()); UniqueValueUtil.validateUniqueValue(VENDOR_SOFTWARE_PRODUCT_NAME, item.getName()); diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-types/src/main/java/org/openecomp/sdcrests/vendorsoftwareproducts/types/VspDetailsDto.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-types/src/main/java/org/openecomp/sdcrests/vendorsoftwareproducts/types/VspDetailsDto.java index 5052442a23..745b930fbc 100644 --- a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-types/src/main/java/org/openecomp/sdcrests/vendorsoftwareproducts/types/VspDetailsDto.java +++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-types/src/main/java/org/openecomp/sdcrests/vendorsoftwareproducts/types/VspDetailsDto.java @@ -35,6 +35,7 @@ public class VspDetailsDto extends VspRequestDto { private String candidateOnboardingOrigin; private String onboardingOrigin; private String networkPackageName; + private String owner; public String getId() { return id; @@ -83,4 +84,12 @@ public class VspDetailsDto extends VspRequestDto { public void setNetworkPackageName(String networkPackageName) { this.networkPackageName = networkPackageName; } + + public String getOwner() { + return owner; + } + + public void setOwner(String owner) { + this.owner = owner; + } } diff --git a/openecomp-be/backend/openecomp-sdc-item-permissions-manager/src/main/java/org/openecomp/sdc/itempermissions/dao/impl/ItemPermissionsManagerImpl.java b/openecomp-be/backend/openecomp-sdc-item-permissions-manager/src/main/java/org/openecomp/sdc/itempermissions/dao/impl/ItemPermissionsManagerImpl.java index b9fcfcdbed..726695b0c8 100644 --- a/openecomp-be/backend/openecomp-sdc-item-permissions-manager/src/main/java/org/openecomp/sdc/itempermissions/dao/impl/ItemPermissionsManagerImpl.java +++ b/openecomp-be/backend/openecomp-sdc-item-permissions-manager/src/main/java/org/openecomp/sdc/itempermissions/dao/impl/ItemPermissionsManagerImpl.java @@ -7,6 +7,7 @@ import org.openecomp.sdc.common.errors.Messages; import org.openecomp.sdc.common.session.SessionContextProviderFactory; import org.openecomp.sdc.itempermissions.ItemPermissionsManager; import org.openecomp.sdc.itempermissions.PermissionsServices; +import org.openecomp.sdc.itempermissions.impl.types.PermissionTypes; import org.openecomp.sdc.itempermissions.type.ItemPermissionsEntity; import org.openecomp.sdc.logging.api.Logger; import org.openecomp.sdc.logging.api.LoggerFactory; @@ -71,8 +72,20 @@ public class ItemPermissionsManagerImpl implements ItemPermissionsManager { .withCategory(ErrorCategory.SECURITY).build()); } + if (permission.equals(PermissionTypes.Owner.name()) ){ + if (addedUsersIds.size() == 1){ + itemManager.updateOwner(itemId,addedUsersIds.iterator().next()); + } else { + throw new CoreException(new ErrorCode.ErrorCodeBuilder() + .withMessage(Messages.PERMISSIONS_OWNER_ERROR.getErrorMessage()) + .withId(Messages.PERMISSIONS_OWNER_ERROR.getErrorMessage()) + .withCategory(ErrorCategory.SECURITY).build()); + } + } + permissionsServices .updateItemPermissions(itemId, permission, addedUsersIds, removedUsersIds); + sendNotifications(itemId, permission, addedUsersIds, removedUsersIds, currentUser); } diff --git a/openecomp-be/lib/openecomp-common-lib/src/main/java/org/openecomp/sdc/common/errors/Messages.java b/openecomp-be/lib/openecomp-common-lib/src/main/java/org/openecomp/sdc/common/errors/Messages.java index 565e60e427..038778be88 100644 --- a/openecomp-be/lib/openecomp-common-lib/src/main/java/org/openecomp/sdc/common/errors/Messages.java +++ b/openecomp-be/lib/openecomp-common-lib/src/main/java/org/openecomp/sdc/common/errors/Messages.java @@ -40,6 +40,7 @@ public enum Messages { ZIP_NOT_EXIST("Zip file doesn't exist"), PERMISSIONS_ERROR("Permissions Error. The user does not have permission to perform this action."), + PERMISSIONS_OWNER_ERROR("Permissions Error. Only one owner is allowed."), ZIP_SHOULD_NOT_CONTAIN_FOLDERS("Zip file should not contain folders"), VES_ZIP_SHOULD_CONTAIN_YML_ONLY( diff --git a/openecomp-be/lib/openecomp-sdc-versioning-lib/openecomp-sdc-versioning-api/src/main/java/org/openecomp/sdc/versioning/ItemManager.java b/openecomp-be/lib/openecomp-sdc-versioning-lib/openecomp-sdc-versioning-api/src/main/java/org/openecomp/sdc/versioning/ItemManager.java index ee58902a49..c83ebff818 100644 --- a/openecomp-be/lib/openecomp-sdc-versioning-lib/openecomp-sdc-versioning-api/src/main/java/org/openecomp/sdc/versioning/ItemManager.java +++ b/openecomp-be/lib/openecomp-sdc-versioning-lib/openecomp-sdc-versioning-api/src/main/java/org/openecomp/sdc/versioning/ItemManager.java @@ -17,4 +17,6 @@ public interface ItemManager { void updateVersionStatus(String itemId, VersionStatus addedVersionStatus, VersionStatus removedVersionStatus); + void updateOwner(String itemId, String owner); + } diff --git a/openecomp-be/lib/openecomp-sdc-versioning-lib/openecomp-sdc-versioning-api/src/main/java/org/openecomp/sdc/versioning/types/Item.java b/openecomp-be/lib/openecomp-sdc-versioning-lib/openecomp-sdc-versioning-api/src/main/java/org/openecomp/sdc/versioning/types/Item.java index 2a95c05f49..d572373d44 100644 --- a/openecomp-be/lib/openecomp-sdc-versioning-lib/openecomp-sdc-versioning-api/src/main/java/org/openecomp/sdc/versioning/types/Item.java +++ b/openecomp-be/lib/openecomp-sdc-versioning-lib/openecomp-sdc-versioning-api/src/main/java/org/openecomp/sdc/versioning/types/Item.java @@ -11,6 +11,7 @@ public class Item { private String id; private String type; private String name; + private String owner; private String description; private Map properties = new HashMap<>(); private Map versionStatusCounters = new EnumMap<>(VersionStatus.class); @@ -41,6 +42,14 @@ public class Item { this.name = name; } + public String getOwner() { + return owner; + } + + public void setOwner(String owner) { + this.owner = owner; + } + public String getDescription() { return description; } diff --git a/openecomp-be/lib/openecomp-sdc-versioning-lib/openecomp-sdc-versioning-core/src/main/java/org/openecomp/sdc/versioning/dao/impl/zusammen/ItemZusammenDaoImpl.java b/openecomp-be/lib/openecomp-sdc-versioning-lib/openecomp-sdc-versioning-core/src/main/java/org/openecomp/sdc/versioning/dao/impl/zusammen/ItemZusammenDaoImpl.java index 8fdcf71d59..6352508e0c 100644 --- a/openecomp-be/lib/openecomp-sdc-versioning-lib/openecomp-sdc-versioning-core/src/main/java/org/openecomp/sdc/versioning/dao/impl/zusammen/ItemZusammenDaoImpl.java +++ b/openecomp-be/lib/openecomp-sdc-versioning-lib/openecomp-sdc-versioning-core/src/main/java/org/openecomp/sdc/versioning/dao/impl/zusammen/ItemZusammenDaoImpl.java @@ -70,6 +70,9 @@ public class ItemZusammenDaoImpl implements ItemDao { case InfoPropertyName.ITEM_TYPE: item.setType((String) propertyValue); break; + case InfoPropertyName.ITEM_OWNER: + item.setOwner((String) propertyValue); + break; case InfoPropertyName.ITEM_VERSIONS_STATUSES: for (Map.Entry statusCounter : ((Map) propertyValue).entrySet()) { @@ -87,6 +90,7 @@ public class ItemZusammenDaoImpl implements ItemDao { info.setName(item.getName()); info.setDescription(item.getDescription()); info.addProperty(InfoPropertyName.ITEM_TYPE, item.getType()); + info.addProperty(InfoPropertyName.ITEM_OWNER,item.getOwner()); info.addProperty(InfoPropertyName.ITEM_VERSIONS_STATUSES, item.getVersionStatusCounters()); item.getProperties().entrySet() .forEach(property -> info.addProperty(property.getKey(), property.getValue())); @@ -96,6 +100,7 @@ public class ItemZusammenDaoImpl implements ItemDao { private static final class InfoPropertyName { private static final String ITEM_TYPE = "item_type"; private static final String ITEM_VERSIONS_STATUSES = "item_versions_statuses"; + private static final String ITEM_OWNER = "Owner"; private InfoPropertyName() { throw new IllegalStateException("Constants class"); diff --git a/openecomp-be/lib/openecomp-sdc-versioning-lib/openecomp-sdc-versioning-core/src/main/java/org/openecomp/sdc/versioning/impl/ItemManagerImpl.java b/openecomp-be/lib/openecomp-sdc-versioning-lib/openecomp-sdc-versioning-core/src/main/java/org/openecomp/sdc/versioning/impl/ItemManagerImpl.java index 79284542fb..3e85a53ac2 100644 --- a/openecomp-be/lib/openecomp-sdc-versioning-lib/openecomp-sdc-versioning-core/src/main/java/org/openecomp/sdc/versioning/impl/ItemManagerImpl.java +++ b/openecomp-be/lib/openecomp-sdc-versioning-lib/openecomp-sdc-versioning-core/src/main/java/org/openecomp/sdc/versioning/impl/ItemManagerImpl.java @@ -65,4 +65,15 @@ public class ItemManagerImpl implements ItemManager { } itemDao.update(item); } + + @Override + public void updateOwner(String itemId, String owner){ + Item item = get(itemId); + if (item == null) { + return; + } + + item.setOwner(owner); + itemDao.update(item); + } } -- cgit 1.2.3-korg