Code development platform for open source projects from the European Union institutions

Skip to content
Snippets Groups Projects
Commit 05172db8 authored by Joze RIHTARSIC's avatar Joze RIHTARSIC
Browse files

Upgrade angular version to 13 and fix button visibility issue

parent 9515a6f9
No related branches found
No related tags found
No related merge requests found
......@@ -24,7 +24,7 @@
<modules>
<!-- module>smp-parent-pom</module -->
<module>smp-api</module>
<!-- module>smp-angular</module -->
<module>smp-angular</module>
<module>smp-server-library</module>
<module>smp-webapp</module>
</modules>
......
......@@ -25,6 +25,7 @@
!.vscode/extensions.json
# misc
/.angular/cache
/.sass-cache
/connect.lock
/coverage/*
......
......@@ -79,16 +79,6 @@
"src/favicon.ico"
]
}
},
"lint": {
"builder": "@angular-devkit/build-angular:tslint",
"options": {
"tsConfig": [
"src/tsconfig.app.json",
"src/tsconfig.spec.json"
],
"exclude": []
}
}
}
},
......@@ -103,15 +93,6 @@
"protractorConfig": "./protractor.conf.js",
"devServerTarget": "SMP-UI:serve"
}
},
"lint": {
"builder": "@angular-devkit/build-angular:tslint",
"options": {
"tsConfig": [
"e2e/tsconfig.e2e.json"
],
"exclude": []
}
}
}
}
......
This diff is collapsed.
......@@ -14,19 +14,19 @@
},
"private": true,
"dependencies": {
"@angular/animations": "^12.2.10",
"@angular/cdk": "^12.2.10",
"@angular/common": "^12.2.10",
"@angular/compiler": "^12.2.10",
"@angular/core": "^12.2.10",
"@angular/animations": "^13.2.3",
"@angular/cdk": "^13.2.3",
"@angular/common": "^13.2.3",
"@angular/compiler": "^13.2.3",
"@angular/core": "^13.2.3",
"@angular/flex-layout": "^12.0.0-beta.35",
"@angular/forms": "^12.2.10",
"@angular/forms": "^13.2.3",
"@angular/http": "^7.2.16",
"@angular/material": "^12.2.10",
"@angular/platform-browser": "^12.2.10",
"@angular/platform-browser-dynamic": "^12.2.10",
"@angular/platform-server": "^12.2.10",
"@angular/router": "^12.2.10",
"@angular/material": "^13.2.3",
"@angular/platform-browser": "^13.2.3",
"@angular/platform-browser-dynamic": "^13.2.3",
"@angular/platform-server": "^13.2.3",
"@angular/router": "^13.2.3",
"@swimlane/ngx-datatable": "~20.0.0",
"core-js": "^3.18.3",
"file-saver": "^2.0.5",
......@@ -36,26 +36,26 @@
"zone.js": "^0.11.4"
},
"devDependencies": {
"@angular-devkit/build-angular": "12.2.10",
"@angular/cli": "^12.2.10",
"@angular/compiler-cli": "^12.2.10",
"@angular-devkit/build-angular": "^13.2.4",
"@angular/cli": "^13.2.4",
"@angular/compiler-cli": "^13.2.3",
"@types/file-saver": "2.0.3",
"@types/jasmine": "3.9.1",
"@types/node": "^16.11.1",
"ng-packagr": "^12.2.3",
"codelyzer": "^6.0.2",
"hammerjs": "^2.0.8",
"jasmine-core": "3.9.0",
"jasmine-spec-reporter": "7.0.0",
"codelyzer": "^6.0.2",
"karma": "^6.3.4",
"karma": "^6.3.16",
"karma-chrome-launcher": "^3.1.0",
"karma-cli": "^2.0.0",
"karma-jasmine": "^4.0.1",
"ng-packagr": "^13.2.1",
"postcss": "^8.3.9",
"protractor": "^7.0.0",
"ts-node": "^10.3.0",
"tslint": "^6.1.3",
"typescript": "~4.3.5"
"typescript": "~4.5.5"
},
"peerDependencies": {
"postcss": "^8.3.9"
......
......@@ -84,122 +84,103 @@ import {SmlIntegrationService} from "./domain/sml-integration.service";
@NgModule({
declarations: [
AppComponent,
LoginComponent,
HomeComponent,
ServiceGroupEditComponent,
ServiceGroupSearchComponent,
DomainComponent,
DomainDetailsDialogComponent,
UserComponent,
AlertComponent,
FooterComponent,
SpinnerComponent,
IsAuthorized,
SaveDialogComponent,
ServiceGroupMetadataDialogComponent,
CancelDialogComponent,
ConfirmationDialogComponent,
InformationDialogComponent,
RowLimiterComponent,
DatePipe,
CapitalizeFirstPipe,
DefaultPasswordDialogComponent,
ServiceGroupDetailsDialogComponent,
ServiceGroupExtensionWizardDialogComponent,
ServiceMetadataWizardDialogComponent,
ColumnPickerComponent,
PageHelperComponent,
ClearInvalidDirective,
PageHeaderComponent,
DomainSelectorComponent,
SearchTableComponent,
UserDetailsDialogComponent,
ExpiredPasswordDialogComponent,
DialogComponent,
KeystoreImportDialogComponent,
KeystoreEditDialogComponent,
CertificateDialogComponent,
TruststoreEditDialogComponent,
],
entryComponents: [
AppComponent,
ServiceGroupMetadataDialogComponent,
ServiceGroupDetailsDialogComponent,
ServiceGroupExtensionWizardDialogComponent,
ServiceMetadataWizardDialogComponent,
DomainDetailsDialogComponent,
UserDetailsDialogComponent,
CancelDialogComponent,
ConfirmationDialogComponent,
InformationDialogComponent,
SaveDialogComponent,
DefaultPasswordDialogComponent,
ExpiredPasswordDialogComponent,
KeystoreImportDialogComponent,
KeystoreEditDialogComponent,
CertificateDialogComponent,
TruststoreEditDialogComponent,
],
imports: [
BrowserModule,
FlexLayoutModule,
HttpClientModule,
HttpClientXsrfModule.withOptions({
cookieName: 'XSRF-TOKEN',
headerName: 'X-XSRF-TOKEN'
}),
BrowserAnimationsModule,
FormsModule,
NgxDatatableModule,
MatButtonModule,
MatCardModule,
MatDatepickerModule,
MatDialogModule,
MatTooltipModule,
MatToolbarModule,
MatMenuModule,
MatInputModule,
MatIconModule,
MatListModule,
MatSidenavModule,
MatSelectModule,
MatTabsModule,
MatSlideToggleModule,
MatProgressSpinnerModule,
routing,
ReactiveFormsModule,
SharedModule,
MatExpansionModule,
],
providers: [
AuthenticatedGuard,
AuthorizedGuard,
AuthorizedAdminGuard,
DirtyGuard,
HttpEventService,
SecurityService,
SecurityEventService,
DomainService,
SmpInfoService,
AlertService,
DownloadService,
CertificateService,
KeystoreService,
TruststoreService,
SmlIntegrationService,
GlobalLookups,
DatePipe,
UserService,
UserDetailsService,
{
provide: ExtendedHttpClient,
useFactory: extendedHttpClientCreator,
deps: [HttpClient, HttpEventService, SecurityService]
}
],
bootstrap: [AppComponent]
declarations: [
AppComponent,
LoginComponent,
HomeComponent,
ServiceGroupEditComponent,
ServiceGroupSearchComponent,
DomainComponent,
DomainDetailsDialogComponent,
UserComponent,
AlertComponent,
FooterComponent,
SpinnerComponent,
IsAuthorized,
SaveDialogComponent,
ServiceGroupMetadataDialogComponent,
CancelDialogComponent,
ConfirmationDialogComponent,
InformationDialogComponent,
RowLimiterComponent,
DatePipe,
CapitalizeFirstPipe,
DefaultPasswordDialogComponent,
ServiceGroupDetailsDialogComponent,
ServiceGroupExtensionWizardDialogComponent,
ServiceMetadataWizardDialogComponent,
ColumnPickerComponent,
PageHelperComponent,
ClearInvalidDirective,
PageHeaderComponent,
DomainSelectorComponent,
SearchTableComponent,
UserDetailsDialogComponent,
ExpiredPasswordDialogComponent,
DialogComponent,
KeystoreImportDialogComponent,
KeystoreEditDialogComponent,
CertificateDialogComponent,
TruststoreEditDialogComponent,
],
imports: [
BrowserModule,
FlexLayoutModule,
HttpClientModule,
HttpClientXsrfModule.withOptions({
cookieName: 'XSRF-TOKEN',
headerName: 'X-XSRF-TOKEN'
}),
BrowserAnimationsModule,
FormsModule,
NgxDatatableModule,
MatButtonModule,
MatCardModule,
MatDatepickerModule,
MatDialogModule,
MatTooltipModule,
MatToolbarModule,
MatMenuModule,
MatInputModule,
MatIconModule,
MatListModule,
MatSidenavModule,
MatSelectModule,
MatTabsModule,
MatSlideToggleModule,
MatProgressSpinnerModule,
routing,
ReactiveFormsModule,
SharedModule,
MatExpansionModule,
],
providers: [
AuthenticatedGuard,
AuthorizedGuard,
AuthorizedAdminGuard,
DirtyGuard,
HttpEventService,
SecurityService,
SecurityEventService,
DomainService,
SmpInfoService,
AlertService,
DownloadService,
CertificateService,
KeystoreService,
TruststoreService,
SmlIntegrationService,
GlobalLookups,
DatePipe,
UserService,
UserDetailsService,
{
provide: ExtendedHttpClient,
useFactory: extendedHttpClientCreator,
deps: [HttpClient, HttpEventService, SecurityService]
}
],
bootstrap: [AppComponent]
})
export class AppModule {
}
......@@ -21,7 +21,7 @@
<ngx-datatable-column prop="alias" name="Alias" maxWidth="250"></ngx-datatable-column>
<ngx-datatable-column prop="certificateId" name="Certificate id"></ngx-datatable-column>
<ngx-datatable-column [cellTemplate]="certificateRowActions" name="Actions"
maxWidth="180"></ngx-datatable-column>
minWidth="100" maxWidth="180" > </ngx-datatable-column>
<ng-template #certificateRowActions let-row="row" ngx-datatable-cell-template>
<div>
......
......@@ -18,16 +18,6 @@
* BROWSER POLYFILLS
*/
/** IE10 and IE11 requires the following for NgClass support on SVG elements */
// import 'classlist.js'; // Run `npm install --save classlist.js`.
/**
* Web Animations `@angular/platform-browser/animations`
* Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.
* Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).
*/
// import 'web-animations-js'; // Run `npm install --save web-animations-js`.
/**
* By default, zone.js will patch all possible macroTask and DomEvents
* user can disable parts of macroTask/DomEvents patch by setting following flags
......
......@@ -22,7 +22,9 @@ __karma__.loaded = function () {};
// First, initialize the Angular testing environment.
getTestBed().initTestEnvironment(
BrowserDynamicTestingModule,
platformBrowserDynamicTesting()
platformBrowserDynamicTesting(), {
teardown: { destroyAfterEach: false }
}
);
// Then we find all the tests.
const context = require.context('./', true, /\.spec\.ts$/);
......
......@@ -4,12 +4,14 @@ package eu.europa.ec.edelivery.smp.ui;
import eu.europa.ec.edelivery.smp.auth.SMPAuthenticationService;
import eu.europa.ec.edelivery.smp.auth.SMPAuthenticationToken;
import eu.europa.ec.edelivery.smp.auth.SMPAuthorizationService;
import eu.europa.ec.edelivery.smp.data.model.DBUser;
import eu.europa.ec.edelivery.smp.data.ui.ErrorRO;
import eu.europa.ec.edelivery.smp.data.ui.LoginRO;
import eu.europa.ec.edelivery.smp.data.ui.UserRO;
import eu.europa.ec.edelivery.smp.logging.SMPLogger;
import eu.europa.ec.edelivery.smp.logging.SMPLoggerFactory;
import eu.europa.ec.edelivery.smp.services.ConfigurationService;
import eu.europa.ec.edelivery.smp.services.ui.UIUserService;
import eu.europa.ec.edelivery.smp.utils.SMPCookieWriter;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.convert.ConversionService;
......@@ -44,6 +46,8 @@ public class AuthenticationResource {
private static final SMPLogger LOG = SMPLoggerFactory.getLogger(AuthenticationResource.class);
private UIUserService uiUserService;
protected SMPAuthenticationService authenticationService;
protected SMPAuthorizationService authorizationService;
......@@ -62,13 +66,15 @@ public class AuthenticationResource {
, ConversionService conversionService
, ConfigurationService configurationService
, SMPCookieWriter smpCookieWriter
, CsrfTokenRepository csrfTokenRepository) {
, CsrfTokenRepository csrfTokenRepository
, UIUserService uiUserService) {
this.authenticationService = authenticationService;
this.authorizationService = authorizationService;
this.conversionService = conversionService;
this.configurationService = configurationService;
this.smpCookieWriter = smpCookieWriter;
this.csrfTokenRepository = csrfTokenRepository;
this.uiUserService = uiUserService;
}
@ResponseStatus(value = HttpStatus.FORBIDDEN)
......@@ -127,14 +133,21 @@ public class AuthenticationResource {
public UserRO getUser() {
Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal();
if (principal instanceof UserRO){
return (UserRO)principal;
if (principal instanceof UserRO) {
return (UserRO) principal;
}
UserRO user = new UserRO();
String username = (String) principal;
LOG.debug("get user: {}", username);
user.setUsername(username);
return user;
LOG.debug("get user: [{}]", username);
DBUser user = uiUserService.findUserByUsername(username);
if (user == null || !user.isActive()) {
LOG.warn("User: [{}] does not exists anymore or is not active.", username);
return null;
}
UserRO userRO = conversionService.convert(user, UserRO.class);
return authorizationService.sanitize(userRO);
}
/**
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment