diff --git a/smp-angular/src/app/system-settings/admin-domain/domain-panel/domain-panel.component.ts b/smp-angular/src/app/system-settings/admin-domain/domain-panel/domain-panel.component.ts index 6d6735d2e80eec94f46a2e325521f47551e831ef..65230be8f7e49568a3ba40363d8d4f46c0d05766 100644 --- a/smp-angular/src/app/system-settings/admin-domain/domain-panel/domain-panel.component.ts +++ b/smp-angular/src/app/system-settings/admin-domain/domain-panel/domain-panel.component.ts @@ -1,4 +1,4 @@ -import {Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild,} from '@angular/core'; +import {Component, ElementRef, EventEmitter, Input, Output, ViewChild,} from '@angular/core'; import {DomainRo} from "../../../common/model/domain-ro.model"; import {AbstractControl, FormBuilder, FormControl, FormGroup, Validators} from "@angular/forms"; import {AdminDomainService} from "../admin-domain.service"; diff --git a/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/services/ui/UIUserService.java b/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/services/ui/UIUserService.java index 680b1d6f2a009fe146e23623deee399476645a64..3a5e71bc0d44254f90ef191fde02774a9a8e2f4b 100644 --- a/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/services/ui/UIUserService.java +++ b/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/services/ui/UIUserService.java @@ -181,6 +181,7 @@ public class UIUserService extends UIServiceBase<DBUser, UserRO> { throw new SMPRuntimeException(ErrorCode.INVALID_REQUEST, "CertificateCredentials", "Certificate is not given for certificate credential!"); } + DBCredential dbCredential = conversionService.convert(credential, DBCredential.class); dbCredential.setCredentialType(CredentialType.CERTIFICATE); dbCredential.setCredentialTarget(CredentialTargetType.REST_API); @@ -197,8 +198,9 @@ public class UIUserService extends UIServiceBase<DBUser, UserRO> { dbCredential.setCertificate(dbCertificate); credentialDao.persistFlushDetach(dbCredential); + CredentialRO result = conversionService.convert(dbCredential, CredentialRO.class); - CertificateRO resultCertificate = conversionService.convert(dbCredential.getCertificate(), CertificateRO.class); + CertificateRO resultCertificate = truststoreService.getCertificateData(dbCertificate.getPemEncoding(), true, false); result.setCertificate(resultCertificate); result.setStatus(EntityROStatus.NEW.getStatusNumber()); return result; @@ -453,6 +455,7 @@ public class UIUserService extends UIServiceBase<DBUser, UserRO> { credentialDao.remove(credential); CredentialRO credentialRO = conversionService.convert(credential, CredentialRO.class); credentialRO.setStatus(EntityROStatus.REMOVE.getStatusNumber()); + return credentialRO; } diff --git a/smp-webapp/src/main/java/eu/europa/ec/edelivery/smp/ui/external/UserController.java b/smp-webapp/src/main/java/eu/europa/ec/edelivery/smp/ui/external/UserController.java index 6880802b4b75d8129803d26bad51921ab59bae73..99f0440dad350894b1128d72dac365dcc4590137 100644 --- a/smp-webapp/src/main/java/eu/europa/ec/edelivery/smp/ui/external/UserController.java +++ b/smp-webapp/src/main/java/eu/europa/ec/edelivery/smp/ui/external/UserController.java @@ -146,8 +146,11 @@ public class UserController { Long accessTokenId = decryptEntityId(encAccessTokenId); // delete user credential - return uiUserService.deleteUserCredentials(userId, + CredentialRO result = uiUserService.deleteUserCredentials(userId, accessTokenId, CredentialType.ACCESS_TOKEN, CredentialTargetType.REST_API); + // set the same encrypted id so that UI can locate and update it + result.setCredentialId(encAccessTokenId); + return result; } @PreAuthorize("@smpAuthorizationService.isCurrentlyLoggedIn(#encUserId)") @@ -160,11 +163,14 @@ public class UserController { Long accessTokenId = decryptEntityId(encAccessTokenId); // delete user credential - return uiUserService.updateUserCredentials(userId, + CredentialRO result = uiUserService.updateUserCredentials(userId, accessTokenId, CredentialType.ACCESS_TOKEN, CredentialTargetType.REST_API, credentialRO); + // set the same encrypted credential id so that UI can remove it from the list + result.setCredentialId(encAccessTokenId); + return result; } @PreAuthorize("@smpAuthorizationService.isCurrentlyLoggedIn(#encUserId)") @@ -195,8 +201,11 @@ public class UserController { Long userId = decryptEntityId(encUserId); Long credentialId = decryptEntityId(encCredentialId); // delete user credential - return uiUserService.deleteUserCredentials(userId, + CredentialRO result = uiUserService.deleteUserCredentials(userId, credentialId, CredentialType.CERTIFICATE, CredentialTargetType.REST_API); + // set the same encrypted credential id so that UI can remove it from the list + result.setCredentialId(encCredentialId); + return result; } @PreAuthorize("@smpAuthorizationService.isCurrentlyLoggedIn(#encUserId)") @@ -208,11 +217,14 @@ public class UserController { Long userId = decryptEntityId(encUserId); Long credentialId = decryptEntityId(encCredentialId); // delete user credential - return uiUserService.updateUserCredentials(userId, + CredentialRO result = uiUserService.updateUserCredentials(userId, credentialId, CredentialType.CERTIFICATE, CredentialTargetType.REST_API, credentialRO); + // set the same encrypted credential id so that UI can update it + result.setCredentialId(encCredentialId); + return result; } @PreAuthorize("@smpAuthorizationService.isCurrentlyLoggedIn(#encUserId)")