diff --git a/src/frontend/app/administration/connection/connection.component.ts b/src/frontend/app/administration/connection/connection.component.ts index d70a1ec3408c62af83c9328cead53ae54fa1e966..48fdff5fbe587bf6ea4d80a282ce95e65621d5ae 100644 --- a/src/frontend/app/administration/connection/connection.component.ts +++ b/src/frontend/app/administration/connection/connection.component.ts @@ -7,6 +7,7 @@ import { ActivatedRoute, Router } from '@angular/router'; import { TranslateService } from '@ngx-translate/core'; import { finalize } from 'rxjs/operators'; import { ConfirmComponent } from '../../plugins/confirm.component'; +import { AuthService } from '../../service/auth.service'; export interface Privilege { @@ -41,7 +42,7 @@ export class ConnectionComponent implements OnInit { currentConnection: Connection; - constructor(public http: HttpClient, private translate: TranslateService, private route: ActivatedRoute, private router: Router, public signaturesService: SignaturesContentService, public notificationService: NotificationService, public dialog: MatDialog) { + constructor(public http: HttpClient, private translate: TranslateService, private route: ActivatedRoute, private router: Router, public signaturesService: SignaturesContentService, public notificationService: NotificationService, public dialog: MatDialog, public authService: AuthService) { } ngOnInit(): void { @@ -82,7 +83,7 @@ export class ConnectionComponent implements OnInit { ) .subscribe({ next: () => { - this.signaturesService.authMode = connection.id; + this.authService.authMode = connection.id; this.currentConnection = connection; this.notificationService.success('lang.connectionModeUpdated'); }, diff --git a/src/frontend/app/administration/connection/ldap/ldap-list.component.html b/src/frontend/app/administration/connection/ldap/ldap-list.component.html index 09ca667b8d739db7a1709c218718a3e29c32bcd7..85b43821bd7545bae1ef1849e24509b82b122b85 100644 --- a/src/frontend/app/administration/connection/ldap/ldap-list.component.html +++ b/src/frontend/app/administration/connection/ldap/ldap-list.component.html @@ -32,7 +32,7 @@ </mat-form-field> </mat-header-cell> <mat-cell *matCellDef="let element" style="justify-content: flex-end;"> - <button mat-icon-button color="warn" [disabled]="dataSource.data.length === 1 && signaturesService.authMode === 'ldap'" (click)="$event.stopPropagation();delete(element)"> + <button mat-icon-button color="warn" [disabled]="dataSource.data.length === 1 && authService.authMode === 'ldap'" (click)="$event.stopPropagation();delete(element)"> <mat-icon class="fa fa-trash-alt fa-2x"></mat-icon> </button> </mat-cell> diff --git a/src/frontend/app/administration/connection/ldap/ldap-list.component.ts b/src/frontend/app/administration/connection/ldap/ldap-list.component.ts index f994aa483eaff9211c95c98be7663dfab70403cc..880293feef9824f90307ec885330e4666451a1e8 100644 --- a/src/frontend/app/administration/connection/ldap/ldap-list.component.ts +++ b/src/frontend/app/administration/connection/ldap/ldap-list.component.ts @@ -7,6 +7,7 @@ import { ConfirmComponent } from '../../../plugins/confirm.component'; import { TranslateService } from '@ngx-translate/core'; import { map, tap, finalize } from 'rxjs/operators'; import { LatinisePipe } from 'ngx-pipes'; +import { AuthService } from '../../../service/auth.service'; export interface Ldap { @@ -30,7 +31,7 @@ export class LdapListComponent implements OnInit { @ViewChild(MatPaginator) paginator: MatPaginator; @ViewChild(MatSort) sort: MatSort; - constructor(public http: HttpClient, private translate: TranslateService, private latinisePipe: LatinisePipe, public dialog: MatDialog, public signaturesService: SignaturesContentService, public notificationService: NotificationService) { + constructor(public http: HttpClient, private translate: TranslateService, private latinisePipe: LatinisePipe, public dialog: MatDialog, public signaturesService: SignaturesContentService, public notificationService: NotificationService, public authService: AuthService) { this.displayedColumns = ['label', 'actions']; diff --git a/src/frontend/app/administration/connection/ldap/ldap.component.html b/src/frontend/app/administration/connection/ldap/ldap.component.html index 38d3873a00a6b32861120e3503cf6f8f3e276d2e..43f36348c7809509585ce7f0222aff694f498b3b 100644 --- a/src/frontend/app/administration/connection/ldap/ldap.component.html +++ b/src/frontend/app/administration/connection/ldap/ldap.component.html @@ -53,7 +53,7 @@ <button mat-stroked-button type="submit" class="btn blue" [disabled]="!adminForm.form.valid || !canValidate()">{{'lang.validate' | translate}}</button> <button mat-stroked-button type="button" class="btn" (click)="cancel()">{{'lang.cancel' | translate}}</button> - <button mat-stroked-button type="button" *ngIf="!creationMode" [disabled]="signaturesService.authMode==='ldap' && ldap.count === 1" class="btn red" + <button mat-stroked-button type="button" *ngIf="!creationMode" [disabled]="authService.authMode==='ldap' && ldap.count === 1" class="btn red" (click)="delete()">{{'lang.delete' | translate}}</button> </div> </form> diff --git a/src/frontend/app/administration/connection/ldap/ldap.component.ts b/src/frontend/app/administration/connection/ldap/ldap.component.ts index dbb711f0aba9b15a66c8f8eef719af84955442c4..bc59c796d5f0ffd5d10d74088298c401c9a73383 100644 --- a/src/frontend/app/administration/connection/ldap/ldap.component.ts +++ b/src/frontend/app/administration/connection/ldap/ldap.component.ts @@ -7,6 +7,7 @@ import { map, finalize } from 'rxjs/operators'; import { ActivatedRoute, Router } from '@angular/router'; import { ConfirmComponent } from '../../../plugins/confirm.component'; import { TranslateService } from '@ngx-translate/core'; +import { AuthService } from '../../../service/auth.service'; export interface Ldap { @@ -45,11 +46,11 @@ export class LdapComponent implements OnInit { // tslint:disable-next-line:no-input-rename @ViewChild('snavRight') snavRight: MatSidenav; - constructor(public http: HttpClient, private translate: TranslateService, private route: ActivatedRoute, private router: Router, public signaturesService: SignaturesContentService, public notificationService: NotificationService, public dialog: MatDialog) { + constructor(public http: HttpClient, private translate: TranslateService, private route: ActivatedRoute, private router: Router, public signaturesService: SignaturesContentService, public notificationService: NotificationService, public dialog: MatDialog, public authService: AuthService) { } ngOnInit(): void { - this.ldapTest.login = this.signaturesService.userLogged.login; + this.ldapTest.login = this.authService.user.login; this.route.params.subscribe((params: any) => { if (params['id'] === undefined) { diff --git a/src/frontend/app/administration/group/group.component.ts b/src/frontend/app/administration/group/group.component.ts index ecedb6cd290fe7d7b1960979d6db93321fe631e0..b36bd1e511035438c6a47a8bf23b1ffe293ac2ba 100644 --- a/src/frontend/app/administration/group/group.component.ts +++ b/src/frontend/app/administration/group/group.component.ts @@ -9,6 +9,7 @@ import { ConfirmComponent } from '../../plugins/confirm.component'; import { TranslateService } from '@ngx-translate/core'; import { FormControl } from '@angular/forms'; import { Observable } from 'rxjs'; +import { AuthService } from '../../service/auth.service'; export interface Group { @@ -39,7 +40,7 @@ export class GroupComponent implements OnInit { @ViewChild(MatPaginator) paginator: MatPaginator; @ViewChild(MatSort) sort: MatSort; - constructor(public http: HttpClient, private translate: TranslateService, private route: ActivatedRoute, private router: Router, public signaturesService: SignaturesContentService, public notificationService: NotificationService, public dialog: MatDialog) { + constructor(public http: HttpClient, private translate: TranslateService, private route: ActivatedRoute, private router: Router, public signaturesService: SignaturesContentService, public notificationService: NotificationService, public dialog: MatDialog, public authService: AuthService) { this.displayedColumns = ['firstname', 'lastname', 'actions']; this.group = { id: '', @@ -122,7 +123,7 @@ export class GroupComponent implements OnInit { } unlinkUser(userToDelete: any) { - if (userToDelete.id === this.signaturesService.userLogged.id) { + if (userToDelete.id === this.authService.user.id) { const dialogRef = this.dialog.open(ConfirmComponent, { autoFocus: false, data: { mode: 'warning', title: 'lang.confirmMsg', msg: 'lang.groupWarnMsg' } }); dialogRef.afterClosed().subscribe(result => { diff --git a/src/frontend/app/administration/home/administration.component.html b/src/frontend/app/administration/home/administration.component.html index 329a09c89d355ec9cbb3f97e139929cd1f4b84d3..47058828e209cd480f861b67c11829d5e416730f 100644 --- a/src/frontend/app/administration/home/administration.component.html +++ b/src/frontend/app/administration/home/administration.component.html @@ -10,7 +10,7 @@ </button> {{'lang.administration' | translate}} </header> <div class="container"> - <div class="admin-item" *ngFor="let privilege of signaturesService.userLogged.administrativePrivileges"> + <div class="admin-item" *ngFor="let privilege of authService.user.administrativePrivileges"> <button mat-stroked-button color="primary" [routerLink]="privilege.route"> <mat-icon color="primary" [class]="privilege.icon"></mat-icon> <span>{{'lang.' + privilege.id | translate}}</span> diff --git a/src/frontend/app/administration/home/administration.component.ts b/src/frontend/app/administration/home/administration.component.ts index 7fd051fa33b18c77be015e48c2aa067d31c64721..ee74abcba5bbcd9f4f1fb2e7f2fa006fc7283949 100644 --- a/src/frontend/app/administration/home/administration.component.ts +++ b/src/frontend/app/administration/home/administration.component.ts @@ -1,5 +1,6 @@ import { Component, OnInit } from '@angular/core'; import { SignaturesContentService } from '../../service/signatures.service'; +import { AuthService } from '../../service/auth.service'; export interface Privilege { id: string; @@ -15,7 +16,7 @@ export interface Privilege { export class AdministrationComponent implements OnInit { - constructor(public signaturesService: SignaturesContentService) { } + constructor(public signaturesService: SignaturesContentService, public authService: AuthService) { } ngOnInit(): void { } } diff --git a/src/frontend/app/administration/sendmail/sendmail.component.ts b/src/frontend/app/administration/sendmail/sendmail.component.ts index b851df86a0217ef86be0b2b366ae2d945e3f6ef4..19ced2d721c3d3300d7dd74c741976f6c018ea77 100644 --- a/src/frontend/app/administration/sendmail/sendmail.component.ts +++ b/src/frontend/app/administration/sendmail/sendmail.component.ts @@ -6,6 +6,7 @@ import { MatDialog } from '@angular/material'; import { map, finalize } from 'rxjs/operators'; import { ActivatedRoute, Router } from '@angular/router'; import { TranslateService } from '@ngx-translate/core'; +import { AuthService } from '../../service/auth.service'; export interface Sendmail { @@ -80,7 +81,7 @@ export class SendmailComponent implements OnInit { } ]; - constructor(public http: HttpClient, private translate: TranslateService, private route: ActivatedRoute, private router: Router, public signaturesService: SignaturesContentService, public notificationService: NotificationService, public dialog: MatDialog) { + constructor(public http: HttpClient, private translate: TranslateService, private route: ActivatedRoute, private router: Router, public signaturesService: SignaturesContentService, public notificationService: NotificationService, public dialog: MatDialog, public authService: AuthService) { } ngOnInit(): void { @@ -124,7 +125,7 @@ export class SendmailComponent implements OnInit { } initEmailSend() { - this.profileInfo = JSON.parse(JSON.stringify(this.signaturesService.userLogged)); + this.profileInfo = JSON.parse(JSON.stringify(this.authService.user)); this.recipientTest = this.profileInfo.email; } diff --git a/src/frontend/app/administration/user/user.component.ts b/src/frontend/app/administration/user/user.component.ts index efd50a0a24a84f250585bc9bd63e75d7a6d14684..85d64c3a67d6c4f7295f606c0ece778aaa36819a 100644 --- a/src/frontend/app/administration/user/user.component.ts +++ b/src/frontend/app/administration/user/user.component.ts @@ -125,10 +125,10 @@ export class UserComponent implements OnInit { ) .subscribe({ next: () => { - if (this.signaturesService.userLogged.id === this.user.id) { - this.signaturesService.userLogged.firstname = this.user.firstname; - this.signaturesService.userLogged.lastname = this.user.lastname; - this.signaturesService.userLogged.email = this.user.email; + if (this.authService.user.id === this.user.id) { + this.authService.user.firstname = this.user.firstname; + this.authService.user.lastname = this.user.lastname; + this.authService.user.email = this.user.email; } if (this.passwordRest.newPassword !== '') { this.updateRestUser(); diff --git a/src/frontend/app/administration/user/users-list.component.html b/src/frontend/app/administration/user/users-list.component.html index 43f1e9a31072e925a41faca69a5ebf03812ee07f..52e9db7294953feafc8a922b09ea45e517dd5ee0 100644 --- a/src/frontend/app/administration/user/users-list.component.html +++ b/src/frontend/app/administration/user/users-list.component.html @@ -40,7 +40,7 @@ </mat-form-field> </mat-header-cell> <mat-cell *matCellDef="let element" style="justify-content: flex-end;"> - <button mat-icon-button color="warn" [disabled]="element.id === signaturesService.userLogged.id" (click)="$event.stopPropagation();delete(element)"> + <button mat-icon-button color="warn" [disabled]="element.id === authService.user.id" (click)="$event.stopPropagation();delete(element)"> <mat-icon class="fa fa-trash-alt fa-2x"></mat-icon> </button> </mat-cell> diff --git a/src/frontend/app/administration/user/users-list.component.ts b/src/frontend/app/administration/user/users-list.component.ts index 9004f241d454fc2662e9705d2ef8370a6a389b46..b63def4372b454411727d2df7040dd9cd53f17b9 100644 --- a/src/frontend/app/administration/user/users-list.component.ts +++ b/src/frontend/app/administration/user/users-list.component.ts @@ -7,6 +7,7 @@ import { ConfirmComponent } from '../../plugins/confirm.component'; import { TranslateService } from '@ngx-translate/core'; import { map, tap, finalize } from 'rxjs/operators'; import { LatinisePipe } from 'ngx-pipes'; +import { AuthService } from '../../service/auth.service'; export interface User { @@ -34,7 +35,7 @@ export class UsersListComponent implements OnInit { @ViewChild(MatPaginator) paginator: MatPaginator; @ViewChild(MatSort) sort: MatSort; - constructor(public http: HttpClient, private translate: TranslateService, private latinisePipe: LatinisePipe, public dialog: MatDialog, public signaturesService: SignaturesContentService, public notificationService: NotificationService) { + constructor(public http: HttpClient, private translate: TranslateService, private latinisePipe: LatinisePipe, public dialog: MatDialog, public signaturesService: SignaturesContentService, public notificationService: NotificationService, public authService: AuthService) { if (this.signaturesService.smartphoneMode) { this.displayedColumns = ['firstname', 'lastname', 'actions']; } else { diff --git a/src/frontend/app/app.component.ts b/src/frontend/app/app.component.ts index 95dda02c06fc0ec4496f521ae231366955e19aa5..fe96ea882737e3af5fdcc4ae4f0d3ed69f0d30ac 100755 --- a/src/frontend/app/app.component.ts +++ b/src/frontend/app/app.component.ts @@ -7,6 +7,7 @@ import { DomSanitizer } from '@angular/platform-browser'; import { TranslateService } from '@ngx-translate/core'; import { MatDialog, MatIconRegistry } from '@angular/material'; import { AlertComponent } from './plugins/alert.component'; +import { AuthService } from './service/auth.service'; @Component({ selector: 'app-root', @@ -17,14 +18,14 @@ import { AlertComponent } from './plugins/alert.component'; export class AppComponent { - constructor(private translate: TranslateService, public http: HttpClient, public signaturesService: SignaturesContentService, public sanitizer: DomSanitizer, private cookieService: CookieService, public notificationService: NotificationService, public dialog: MatDialog, iconReg: MatIconRegistry) { + constructor(private translate: TranslateService, public http: HttpClient, public signaturesService: SignaturesContentService, public sanitizer: DomSanitizer, private cookieService: CookieService, public notificationService: NotificationService, public dialog: MatDialog, iconReg: MatIconRegistry, public authService: AuthService) { iconReg.addSvgIcon('maarchLogo', sanitizer.bypassSecurityTrustResourceUrl('../src/frontend/assets/logo_white.svg')); this.http.get('../rest/authenticationInformations') .subscribe((data: any) => { - this.signaturesService.authMode = data.connection; - this.signaturesService.changeKey = data.changeKey; - if (this.signaturesService.changeKey) { + this.authService.authMode = data.connection; + this.authService.changeKey = data.changeKey; + if (this.authService.changeKey) { this.dialog.open(AlertComponent, { autoFocus: false, disableClose: true, data: { mode: 'warning', title: 'lang.warnPrivateKeyTitle', msg: 'lang.warnPrivateKey' } }); } }); diff --git a/src/frontend/app/document/document.component.html b/src/frontend/app/document/document.component.html index 2743a18d76fab864c61d4a8d18f66ff288551895..6723a97dbdd9e4ae65cb98e3870c5dd8a9869b8f 100755 --- a/src/frontend/app/document/document.component.html +++ b/src/frontend/app/document/document.component.html @@ -76,14 +76,14 @@ <div class="page-info-page">{{'lang.page' | translate}} {{ pageNum }} / {{ totalPages }}</div> </section> <footer class="footer" - *ngIf="!this.signaturesService.annotationMode && !freezeSidenavClose && currentDoc === 0 && signaturesService.userLogged.substitute === null" + *ngIf="!this.signaturesService.annotationMode && !freezeSidenavClose && currentDoc === 0 && authService.user.substitute === null" [@slideUp]> <ng-container *ngFor="let action of actionsList;"> <button [style.color]="action.color" [style.borderColor]="action.color" class="btn" (click)="launchEvent(action)"><i class="{{action.logo}} fa-2x"></i>{{action.label | translate}}</button> </ng-container> </footer> - <footer class="footer substutionModal" *ngIf="!freezeSidenavClose && currentDoc === 0 && signaturesService.userLogged.substitute !== null" [@slideUp]> + <footer class="footer substutionModal" *ngIf="!freezeSidenavClose && currentDoc === 0 && authService.user.substitute !== null" [@slideUp]> <div class="msgModal"> {{'lang.substitutionInfo' | translate}} </div> diff --git a/src/frontend/app/document/document.component.ts b/src/frontend/app/document/document.component.ts index 12b925665d1fbe8fe84b6cf6d9c74fda8ec778b5..35eb414c44a368f72a96786c84f3fa382b1d026a 100755 --- a/src/frontend/app/document/document.component.ts +++ b/src/frontend/app/document/document.component.ts @@ -16,6 +16,7 @@ import { SuccessInfoValidBottomSheetComponent } from '../modal/success-info-vali import { TranslateService } from '@ngx-translate/core'; import { CdkDragEnd, DragRef, CdkDrag } from '@angular/cdk/drag-drop'; import { DocumentListComponent } from './document-list/document-list.component'; +import { AuthService } from '../service/auth.service'; @Component({ @@ -141,7 +142,7 @@ export class DocumentComponent implements OnInit { public signaturesService: SignaturesContentService, public notificationService: NotificationService, private cookieService: CookieService, - private sanitizer: DomSanitizer, public dialog: MatDialog, private bottomSheet: MatBottomSheet) { + private sanitizer: DomSanitizer, public dialog: MatDialog, private bottomSheet: MatBottomSheet, public authService: AuthService) { this.draggable = false; } @@ -165,7 +166,7 @@ export class DocumentComponent implements OnInit { const realUserWorkflow = this.mainDocument.workflow.filter((line: { current: boolean; }) => line.current === true)[0]; - if (realUserWorkflow.userId !== this.signaturesService.userLogged.id) { + if (realUserWorkflow.userId !== this.authService.user.id) { this.http.get('../rest/users/' + realUserWorkflow.userId + '/signatures') .subscribe((dataSign: any) => { this.signaturesService.signaturesListSubstituted = dataSign.signatures; @@ -320,7 +321,7 @@ export class DocumentComponent implements OnInit { addAnnotation(e: any) { - if (!this.signaturesService.annotationMode && this.currentDoc === 0 && this.signaturesService.userLogged.substitute === null) { + if (!this.signaturesService.annotationMode && this.currentDoc === 0 && this.authService.user.substitute === null) { this.backToDetails(); @@ -506,12 +507,12 @@ export class DocumentComponent implements OnInit { const r = confirm(this.translate.instant('lang.deleteSubstitution') + ' ?'); if (r) { - const userUpdated = this.signaturesService.userLogged; + const userUpdated = this.authService.user; userUpdated.substitute = null; - this.http.put('../rest/users/' + this.signaturesService.userLogged.id, userUpdated) + this.http.put('../rest/users/' + this.authService.user.id, userUpdated) .subscribe(() => { - this.signaturesService.userLogged = userUpdated; + this.authService.user = userUpdated; this.notificationService.success('lang.substitutionDeleted'); }); } diff --git a/src/frontend/app/document/visa-workflow/visa-workflow.component.html b/src/frontend/app/document/visa-workflow/visa-workflow.component.html index a514cb46ffb9eea2a104598655b59aa7fffab134..4f1fc54aecbf65f3c03752afe6f7dc59c50fd87c 100644 --- a/src/frontend/app/document/visa-workflow/visa-workflow.component.html +++ b/src/frontend/app/document/visa-workflow/visa-workflow.component.html @@ -16,7 +16,7 @@ <div *ngIf="diffusion.userPicture === undefined && diffusion.userDisplay !== ''" mat-list-icon class="avatar"> <mat-spinner diameter="50"></mat-spinner> </div> - <p class="userSubstitute" mat-line *ngIf="diffusion.current && diffusion.userId !== signaturesService.userLogged.id"> + <p class="userSubstitute" mat-line *ngIf="diffusion.current && diffusion.userId !== authService.user.id"> {{'lang.substituteMsg' | translate}} </p> <h4 mat-line *ngIf="diffusion.userDisplay != ''" class="userDisplay primary"> diff --git a/src/frontend/app/document/visa-workflow/visa-workflow.component.ts b/src/frontend/app/document/visa-workflow/visa-workflow.component.ts index 8023cbbff631b6f6b3bd618028a33fffe17ad011..fc524a1bf0d55fed8b7588001411c44f37720c07 100644 --- a/src/frontend/app/document/visa-workflow/visa-workflow.component.ts +++ b/src/frontend/app/document/visa-workflow/visa-workflow.component.ts @@ -2,6 +2,7 @@ import { Component, Input, OnInit } from '@angular/core'; import { MatSidenav } from '@angular/material'; import { SignaturesContentService } from '../../service/signatures.service'; import { HttpClient } from '@angular/common/http'; +import { AuthService } from '../../service/auth.service'; @Component({ selector: 'app-visa-workflow', @@ -18,7 +19,7 @@ export class VisaWorkflowComponent implements OnInit { // tslint:disable-next-line:no-input-rename @Input('snavRightComponent') snavRightComponent: MatSidenav; - constructor(public http: HttpClient, public signaturesService: SignaturesContentService) { } + constructor(public http: HttpClient, public signaturesService: SignaturesContentService, public authService: AuthService) { } ngOnInit(): void { console.log(this.visaWorkflow); diff --git a/src/frontend/app/documentNotePad/document-note-pad.component.ts b/src/frontend/app/documentNotePad/document-note-pad.component.ts index 77cacdb6e62c80c734d8b8f6344a981d3cf8a8a3..d08250387fb57968250f756a4ae935defaeb2c56 100644 --- a/src/frontend/app/documentNotePad/document-note-pad.component.ts +++ b/src/frontend/app/documentNotePad/document-note-pad.component.ts @@ -3,6 +3,7 @@ import { SignaturesContentService } from '../service/signatures.service'; import { NotificationService } from '../service/notification.service'; import { DomSanitizer } from '@angular/platform-browser'; import { TranslateService } from '@ngx-translate/core'; +import { AuthService } from '../service/auth.service'; @Component({ selector: 'app-document-note-pad', @@ -16,15 +17,15 @@ export class DocumentNotePadComponent implements OnInit { @Output() triggerEvent = new EventEmitter<string>(); @ViewChild('canvas') canvas: ElementRef; - constructor(private translate: TranslateService, private sanitizer: DomSanitizer, public signaturesService: SignaturesContentService, public notificationService: NotificationService) { } + constructor(private translate: TranslateService, private sanitizer: DomSanitizer, public signaturesService: SignaturesContentService, public notificationService: NotificationService, public authService: AuthService) { } ngOnInit(): void { } initPad() { setTimeout(() => { ($('#myCanvas') as any).sign({ - mode: this.signaturesService.userLogged.preferences.writingMode, // direct or stylus - lineWidth: this.signaturesService.userLogged.preferences.writingSize, + mode: this.authService.user.preferences.writingMode, // direct or stylus + lineWidth: this.authService.user.preferences.writingSize, changeColor: $('.radio'), undo: $('.undo'), height: this.signaturesService.workingAreaHeight * 2, @@ -33,7 +34,7 @@ export class DocumentNotePadComponent implements OnInit { fixWidth: this.signaturesService.x, mobileMode: this.signaturesService.mobileMode }); - $('input[value=\'' + this.signaturesService.userLogged.preferences.writingColor + '\']').trigger('click'); + $('input[value=\'' + this.authService.user.preferences.writingColor + '\']').trigger('click'); }, 200); } diff --git a/src/frontend/app/login/login.component.html b/src/frontend/app/login/login.component.html index 568c0203fcb8b8b3e48ca64b74372197ac4ac0fd..05aed36b0515d664849b047e9e1d0fa6bcd39057 100644 --- a/src/frontend/app/login/login.component.html +++ b/src/frontend/app/login/login.component.html @@ -7,8 +7,8 @@ </mat-form-field> <mat-form-field class="input-row"> <input id="password" name="password" matInput placeholder="{{'lang.password' | translate}}" type="password" [(ngModel)]="newLogin.password"> - <mat-hint align="end" *ngIf="signaturesService.authMode === 'default'"><a routerLink="/forgot-password" class="infoLogin">{{'lang.forgotPassword' | translate}} ?</a></mat-hint> - <mat-hint align="end" *ngIf="signaturesService.authMode === 'ldap'"><span class="infoLogin">{{'lang.ldapEnabled' | translate}}</span></mat-hint> + <mat-hint align="end" *ngIf="authService.authMode === 'default'"><a routerLink="/forgot-password" class="infoLogin">{{'lang.forgotPassword' | translate}} ?</a></mat-hint> + <mat-hint align="end" *ngIf="authService.authMode === 'ldap'"><span class="infoLogin">{{'lang.ldapEnabled' | translate}}</span></mat-hint> </mat-form-field> <button type="submit" mat-button [disabled]="newLogin.id == '' || newLogin.password == '' || authService.loadingConnection">{{labelButton | translate}}</button> </form> diff --git a/src/frontend/app/modal/reject-info.component.ts b/src/frontend/app/modal/reject-info.component.ts index 93a570ddda809e3c32b82344e8ce287bc1388713..920184366096afc00dd8f0aeefb520efd27a660a 100644 --- a/src/frontend/app/modal/reject-info.component.ts +++ b/src/frontend/app/modal/reject-info.component.ts @@ -3,6 +3,7 @@ import { Router } from '@angular/router'; import { SignaturesContentService } from '../service/signatures.service'; import { MatBottomSheetRef } from '@angular/material'; import { TranslateService } from '@ngx-translate/core'; +import { AuthService } from '../service/auth.service'; @Component({ templateUrl: '../modal/reject-info.html', @@ -10,7 +11,7 @@ import { TranslateService } from '@ngx-translate/core'; }) export class RejectInfoBottomSheetComponent implements OnInit { date: Date = new Date(); - constructor(private translate: TranslateService, private router: Router, public signaturesService: SignaturesContentService, private bottomSheetRef: MatBottomSheetRef<RejectInfoBottomSheetComponent>) { } + constructor(private translate: TranslateService, private router: Router, public signaturesService: SignaturesContentService, public authService: AuthService, private bottomSheetRef: MatBottomSheetRef<RejectInfoBottomSheetComponent>) { } ngOnInit(): void { setTimeout(() => { if (this.signaturesService.documentsList[this.signaturesService.indexDocumentsList]) { diff --git a/src/frontend/app/modal/reject-info.html b/src/frontend/app/modal/reject-info.html index d248fdc03d1cbf2da0541d207584088c654059e8..a87e7ae60ffa535bd91866b0ba05229c7627e5c4 100755 --- a/src/frontend/app/modal/reject-info.html +++ b/src/frontend/app/modal/reject-info.html @@ -2,6 +2,6 @@ <h1><i class="fa fa-thumbs-down fa-4x"></i></h1> <p>{{'lang.documentRefusedAs' | translate}}</p> - <p style="font-weight:bold;font-size: 30px;">{{signaturesService.userLogged.firstname}} {{signaturesService.userLogged.lastname}}</p> + <p style="font-weight:bold;font-size: 30px;">{{authService.user.firstname}} {{authService.user.lastname}}</p> <p style="font-weight:bold;font-size: 15px;">{{'lang.onRange' | translate}} {{date | date:'dd/MM/yyyy'}} {{'lang.atRange' | translate}} {{date | date:'HH:mm'}}</p> </div> diff --git a/src/frontend/app/modal/success-info-valid.component.ts b/src/frontend/app/modal/success-info-valid.component.ts index e826551c98de36545fe23e7f460cbcef29437054..86eae21cfa60beeba28f88d9b4b12800435fa902 100644 --- a/src/frontend/app/modal/success-info-valid.component.ts +++ b/src/frontend/app/modal/success-info-valid.component.ts @@ -3,6 +3,7 @@ import { Router } from '@angular/router'; import { SignaturesContentService } from '../service/signatures.service'; import { MatBottomSheetRef } from '@angular/material'; import { TranslateService } from '@ngx-translate/core'; +import { AuthService } from '../service/auth.service'; @Component({ templateUrl: 'success-info-valid.html', @@ -10,7 +11,7 @@ import { TranslateService } from '@ngx-translate/core'; }) export class SuccessInfoValidBottomSheetComponent implements OnInit { date: Date = new Date(); - constructor(private translate: TranslateService, private router: Router, public signaturesService: SignaturesContentService, private bottomSheetRef: MatBottomSheetRef<SuccessInfoValidBottomSheetComponent>) { } + constructor(private translate: TranslateService, private router: Router, public signaturesService: SignaturesContentService, public authService: AuthService, private bottomSheetRef: MatBottomSheetRef<SuccessInfoValidBottomSheetComponent>) { } ngOnInit(): void { setTimeout(() => { if (this.signaturesService.documentsList[this.signaturesService.indexDocumentsList]) { diff --git a/src/frontend/app/modal/success-info-valid.html b/src/frontend/app/modal/success-info-valid.html index c963f07f8668e88f60a252cd66e8d6c71a8a63f6..8a6040e61a7aa6a91c7840455dde701aa332ce96 100755 --- a/src/frontend/app/modal/success-info-valid.html +++ b/src/frontend/app/modal/success-info-valid.html @@ -2,6 +2,6 @@ <h1><i class="fa fa-thumbs-up fa-4x"></i></h1> <p>{{'lang.documentValidateAs' | translate}}</p> - <p style="font-weight:bold;font-size: 30px;">{{signaturesService.userLogged.firstname}} {{signaturesService.userLogged.lastname}}</p> + <p style="font-weight:bold;font-size: 30px;">{{authService.user.firstname}} {{authService.user.lastname}}</p> <p style="font-weight:bold;font-size: 15px;">{{'lang.onRange' | translate}} {{date | date:'dd/MM/yyyy'}} {{'lang.atRange' | translate}} {{date | date:'HH:mm'}}</p> </div> diff --git a/src/frontend/app/pad/pad.component.ts b/src/frontend/app/pad/pad.component.ts index 4e9ad7b3a2657f6a1d49546e3e4d912fd54c3ff5..932c5f7b32f90df653ae2d7312f37904026cb501 100755 --- a/src/frontend/app/pad/pad.component.ts +++ b/src/frontend/app/pad/pad.component.ts @@ -6,6 +6,7 @@ import { HttpClient } from '@angular/common/http'; import { NotificationService } from '../service/notification.service'; import { TranslateService } from '@ngx-translate/core'; import { finalize } from 'rxjs/operators'; +import { AuthService } from '../service/auth.service'; interface AfterViewInit { ngAfterViewInit(): void; @@ -40,7 +41,7 @@ export class SignaturePadPageComponent implements AfterViewInit { canvasHeight: 315 }; - constructor(private translate: TranslateService, public http: HttpClient, public signaturesService: SignaturesContentService, public notificationService: NotificationService) { } + constructor(private translate: TranslateService, public http: HttpClient, public signaturesService: SignaturesContentService, public notificationService: NotificationService, public authService: AuthService) { } ngAfterViewInit() { const signPointsData = localStorage.getItem('signature'); @@ -87,7 +88,7 @@ export class SignaturePadPageComponent implements AfterViewInit { 'format': 'png' }; - this.http.post('../rest/users/' + this.signaturesService.userLogged.id + '/signatures', newSign) + this.http.post('../rest/users/' + this.authService.user.id + '/signatures', newSign) .pipe( finalize(() => { this.disableState = false; diff --git a/src/frontend/app/profile/profile.component.html b/src/frontend/app/profile/profile.component.html index 312cb1e4ea94f1dd87bda8e70faa54be30103213..2da7f64d8294c0ae55ff30d7848c72e8650ed389 100644 --- a/src/frontend/app/profile/profile.component.html +++ b/src/frontend/app/profile/profile.component.html @@ -37,7 +37,7 @@ <input name="nom" matInput placeholder="{{'lang.lastname' | translate}}" [(ngModel)]="profileInfo.lastname" required> </mat-form-field> - <mat-accordion *ngIf="signaturesService.authMode === 'default'"> + <mat-accordion *ngIf="authService.authMode === 'default'"> <mat-expansion-panel (closed)="showPassword=false" (opened)="changePasswd()" #passwordContent> <mat-expansion-panel-header> diff --git a/src/frontend/app/profile/profile.component.ts b/src/frontend/app/profile/profile.component.ts index 08537f85872da0ce3171dfc5d2c1a4864d101c73..6276696918067d98ccb93373093b736e88b63e75 100644 --- a/src/frontend/app/profile/profile.component.ts +++ b/src/frontend/app/profile/profile.component.ts @@ -67,13 +67,13 @@ export class ProfileComponent implements OnInit { constructor(private translate: TranslateService, public http: HttpClient, private router: Router, public sanitizer: DomSanitizer, public notificationService: NotificationService, public signaturesService: SignaturesContentService, public authService: AuthService, private cookieService: CookieService, public filtersService: FiltersService) { } ngOnInit(): void { - this.profileInfo = JSON.parse(JSON.stringify(this.signaturesService.userLogged)); + this.profileInfo = JSON.parse(JSON.stringify(this.authService.user)); } closeProfile() { $('.avatarProfile').css({ 'transform': 'rotate(0deg)' }); $('.avatarProfile').css({ 'content': '' }); - this.profileInfo = JSON.parse(JSON.stringify(this.signaturesService.userLogged)); + this.profileInfo = JSON.parse(JSON.stringify(this.authService.user)); this.passwordContent.close(); if (this.signaturesService.mobileMode) { @@ -197,23 +197,23 @@ export class ProfileComponent implements OnInit { alert(this.translate.instant('lang.substitutionWarn')); } - if (this.profileInfo.picture === this.signaturesService.userLogged.picture) { + if (this.profileInfo.picture === this.authService.user.picture) { profileToSend.picture = ''; } else { const orientation = $('.avatarProfile').css('content'); profileToSend['pictureOrientation'] = orientation.replace(/\"/g, ''); } - this.http.put('../rest/users/' + this.signaturesService.userLogged.id, profileToSend) + this.http.put('../rest/users/' + this.authService.user.id, profileToSend) .subscribe((data: any) => { - this.signaturesService.userLogged.email = this.profileInfo.email; - this.signaturesService.userLogged.firstname = this.profileInfo.firstname; - this.signaturesService.userLogged.lastname = this.profileInfo.lastname; - this.signaturesService.userLogged.picture = data.user.picture; - this.signaturesService.userLogged.substitute = data.user.substitute; + this.authService.user.email = this.profileInfo.email; + this.authService.user.firstname = this.profileInfo.firstname; + this.authService.user.lastname = this.profileInfo.lastname; + this.authService.user.picture = data.user.picture; + this.authService.user.substitute = data.user.substitute; this.profileInfo.picture = data.user.picture; - this.http.put('../rest/users/' + this.signaturesService.userLogged.id + '/preferences', profileToSend.preferences) + this.http.put('../rest/users/' + this.authService.user.id + '/preferences', profileToSend.preferences) .pipe( finalize(() => { this.disableState = false; @@ -222,9 +222,9 @@ export class ProfileComponent implements OnInit { }) ) .subscribe(() => { - this.signaturesService.userLogged.preferences = this.profileInfo.preferences; - this.setLang(this.signaturesService.userLogged.preferences.lang); - this.cookieService.set('maarchParapheurLang', this.signaturesService.userLogged.preferences.lang); + this.authService.user.preferences = this.profileInfo.preferences; + this.setLang(this.authService.user.preferences.lang); + this.cookieService.set('maarchParapheurLang', this.authService.user.preferences.lang); if (this.profileInfo.substitute !== null) { this.filtersService.resfreshDocuments(); @@ -239,7 +239,7 @@ export class ProfileComponent implements OnInit { 'Authorization': 'Bearer ' + this.authService.getToken() }); - this.http.put('../rest/users/' + this.signaturesService.userLogged.id + '/password', this.password, { observe: 'response', headers: headers }) + this.http.put('../rest/users/' + this.authService.user.id + '/password', this.password, { observe: 'response', headers: headers }) .subscribe((dataPass: any) => { this.authService.saveTokens(dataPass.headers.get('Token'), dataPass.headers.get('Refresh-Token')); @@ -261,7 +261,7 @@ export class ProfileComponent implements OnInit { } if (this.profileInfo.substitute !== null && this.signaturesService.signaturesList.length > 0) { - this.http.patch('../rest/users/' + this.signaturesService.userLogged.id + '/signatures/substituted', { 'signatures': this.signaturesService.signaturesList }) + this.http.patch('../rest/users/' + this.authService.user.id + '/signatures/substituted', { 'signatures': this.signaturesService.signaturesList }) .subscribe(); } diff --git a/src/frontend/app/service/auth.guard.ts b/src/frontend/app/service/auth.guard.ts index f778b0480ae74a85da488c74fb5878832f20a39f..48619fe289890961da347f90ab3124d7dad97fa6 100644 --- a/src/frontend/app/service/auth.guard.ts +++ b/src/frontend/app/service/auth.guard.ts @@ -18,23 +18,23 @@ export class AuthGuard implements CanActivate { const tokenInfo = this.authService.getToken(); if (tokenInfo !== null) { - if (this.signaturesService.userLogged.id === undefined) { - this.signaturesService.userLogged = JSON.parse(atob(tokenInfo.split('.')[1])).user; + if (this.authService.user.id === undefined) { + this.authService.user = JSON.parse(atob(tokenInfo.split('.')[1])).user; - this.translate.use(this.signaturesService.userLogged.preferences.lang); - this.cookieService.set('maarchParapheurLang', this.signaturesService.userLogged.preferences.lang); + this.translate.use(this.authService.user.preferences.lang); + this.cookieService.set('maarchParapheurLang', this.authService.user.preferences.lang); if (this.signaturesService.signaturesList.length === 0) { - this.http.get('../rest/users/' + this.signaturesService.userLogged.id + '/signatures') + this.http.get('../rest/users/' + this.authService.user.id + '/signatures') .subscribe((dataSign: any) => { this.signaturesService.signaturesList = dataSign.signatures; }); } - if (this.signaturesService.userLogged.picture === undefined) { - this.http.get('../rest/users/' + this.signaturesService.userLogged.id + '/picture') + if (this.authService.user.picture === undefined) { + this.http.get('../rest/users/' + this.authService.user.id + '/picture') .subscribe((dataPic: any) => { - this.signaturesService.userLogged.picture = dataPic.picture; + this.authService.user.picture = dataPic.picture; }); } } diff --git a/src/frontend/app/service/auth.service.ts b/src/frontend/app/service/auth.service.ts index 130c48d18e35c0aa48d1fcb0a0f1d3f529aab507..c93c200714f50de0674d70552a442c46ebb1fc35 100755 --- a/src/frontend/app/service/auth.service.ts +++ b/src/frontend/app/service/auth.service.ts @@ -11,6 +11,7 @@ import { SignaturesContentService } from './signatures.service'; export class AuthService { authMode: string = ''; + changeKey: boolean = false; user: any = {}; loadingConnection: boolean = false; loadingForm: boolean = false; @@ -85,6 +86,6 @@ export class AuthService { } updateUserInfo(token: string) { - this.signaturesService.userLogged = JSON.parse(atob(token.split('.')[1])).user; + this.user = JSON.parse(atob(token.split('.')[1])).user; } } diff --git a/src/frontend/app/service/signatures.service.ts b/src/frontend/app/service/signatures.service.ts index cc14e3ab3eaad248f1d158a34ec287ed669a6fc1..5663ef2f05e7bdbe10e50c1f7a8bd6cf0f2725dd 100755 --- a/src/frontend/app/service/signatures.service.ts +++ b/src/frontend/app/service/signatures.service.ts @@ -3,9 +3,6 @@ import { Injectable } from '@angular/core'; @Injectable() export class SignaturesContentService { - authMode: string = ''; - changeKey: boolean = false; - userLogged: any = {}; mainDocumentId = 0; signaturesContent: any[] = []; notesContent: any[] = []; @@ -59,7 +56,6 @@ export class SignaturesContentService { } reset() { - this.userLogged = {}; this.mainDocumentId = 0; this.signaturesContent = []; this.notesContent = []; diff --git a/src/frontend/app/sidebar/administration/admin-sidebar.component.html b/src/frontend/app/sidebar/administration/admin-sidebar.component.html index 8606151fa81311520573bf04caaf8609327f0058..8db103ab05877ac768c436a0eec62766aa32eaa1 100644 --- a/src/frontend/app/sidebar/administration/admin-sidebar.component.html +++ b/src/frontend/app/sidebar/administration/admin-sidebar.component.html @@ -11,10 +11,10 @@ <mat-icon fontSet="fas" fontIcon="fa-arrow-left fa-2x"></mat-icon> </button> <div class="user" style="color: #F99830"> - {{signaturesService.userLogged.firstname}} {{signaturesService.userLogged.lastname}} + {{authService.user.firstname}} {{authService.user.lastname}} </div> - <div *ngIf="signaturesService.userLogged.picture" class="avatar" - [ngStyle]="{'background': 'url(' + signaturesService.userLogged.picture + ') no-repeat scroll center center / cover'}"> + <div *ngIf="authService.user.picture" class="avatar" + [ngStyle]="{'background': 'url(' + authService.user.picture + ') no-repeat scroll center center / cover'}"> </div> </header> <header class="sidebar-header"> @@ -24,7 +24,7 @@ </header> </div> <mat-nav-list class="admin-list"> - <mat-list-item *ngFor="let privilege of signaturesService.userLogged.administrativePrivileges" [routerLink]="privilege.route" [class.item-active]="('/' + route.routeConfig.path).indexOf(privilege.route) !== -1"> + <mat-list-item *ngFor="let privilege of authService.user.administrativePrivileges" [routerLink]="privilege.route" [class.item-active]="('/' + route.routeConfig.path).indexOf(privilege.route) !== -1"> <mat-icon matListIcon [class]="privilege.icon" color="primary"></mat-icon> <p matLine> {{'lang.' + privilege.id | translate}} diff --git a/src/frontend/app/sidebar/administration/admin-sidebar.component.ts b/src/frontend/app/sidebar/administration/admin-sidebar.component.ts index 9312418d99b6fc9302bdc9c62a0aa26af937dc1c..58b5a284605ddeeba32a51dcb61295ec1dedb675 100644 --- a/src/frontend/app/sidebar/administration/admin-sidebar.component.ts +++ b/src/frontend/app/sidebar/administration/admin-sidebar.component.ts @@ -29,7 +29,7 @@ export class AdminSidebarComponent implements OnInit { } ngOnInit() { - $('.avatar').css({'background': 'url(data:image/png;base64,' + this.signaturesService.userLogged.picture + ') no-repeat #135F7F'}).css({'background-size': 'cover'}).css({'background-position': 'center'}); + $('.avatar').css({'background': 'url(data:image/png;base64,' + this.authService.user.picture + ') no-repeat #135F7F'}).css({'background-size': 'cover'}).css({'background-position': 'center'}); } openHome() { diff --git a/src/frontend/app/sidebar/sidebar.component.html b/src/frontend/app/sidebar/sidebar.component.html index 28f4f174dbbaa5dead94395976a6f9b051614f1c..21dabf4b3fcdc7f1ebc036d4d8bed334d90f3543 100755 --- a/src/frontend/app/sidebar/sidebar.component.html +++ b/src/frontend/app/sidebar/sidebar.component.html @@ -4,7 +4,7 @@ <button class="logout-button" mat-icon-button (click)="authService.logout()"> <mat-icon fontSet="fas" fontIcon="fa-power-off"></mat-icon> </button> - <button *ngIf="signaturesService.userLogged.administrativePrivileges.length > 0" class="admin-button" mat-icon-button (click)="openAdmin()"> + <button *ngIf="authService.user.administrativePrivileges.length > 0" class="admin-button" mat-icon-button (click)="openAdmin()"> <mat-icon fontSet="fas" fontIcon="fa-tools"></mat-icon> </button> <button *ngIf="checkClose()" class="closePanel" @@ -12,10 +12,10 @@ <mat-icon fontSet="fas" fontIcon="fa-arrow-left fa-2x"></mat-icon> </button> <div class="user" style="color: #F99830"> - {{signaturesService.userLogged.firstname}} {{signaturesService.userLogged.lastname}} + {{authService.user.firstname}} {{authService.user.lastname}} </div> - <div *ngIf="signaturesService.userLogged.picture" class="avatar" - [ngStyle]="{'background': 'url(' + signaturesService.userLogged.picture + ') no-repeat scroll center center / cover'}" + <div *ngIf="authService.user.picture" class="avatar" + [ngStyle]="{'background': 'url(' + authService.user.picture + ') no-repeat scroll center center / cover'}" (click)="openProfile()"> </div> </header> diff --git a/src/frontend/app/sidebar/sidebar.component.ts b/src/frontend/app/sidebar/sidebar.component.ts index 32d9b01cacbd76ac562b602a67d3392eda8f0012..24b27df57c9c5d1e33cc7e10d03666fb26c93948 100755 --- a/src/frontend/app/sidebar/sidebar.component.ts +++ b/src/frontend/app/sidebar/sidebar.component.ts @@ -45,7 +45,7 @@ export class SidebarComponent implements OnInit { } ngOnInit() { - $('.avatar').css({ 'background': 'url(data:image/png;base64,' + this.signaturesService.userLogged.picture + ') no-repeat #135F7F' }).css({ 'background-size': 'cover' }).css({ 'background-position': 'center' }); + $('.avatar').css({ 'background': 'url(data:image/png;base64,' + this.authService.user.picture + ') no-repeat #135F7F' }).css({ 'background-size': 'cover' }).css({ 'background-position': 'center' }); this.http.get('../rest/documents?limit=' + this.limit + '&offset=' + this.offset + '&mode=' + this.signaturesService.mode) .subscribe((data: any) => { this.signaturesService.documentsList = data.documents; diff --git a/src/frontend/app/signatures/signatures.component.ts b/src/frontend/app/signatures/signatures.component.ts index 11f5a72ae2c777f1d5d361aa42372cdb661e4091..21e6b4374ba824147b13b699cac94d090a2bc007 100755 --- a/src/frontend/app/signatures/signatures.component.ts +++ b/src/frontend/app/signatures/signatures.component.ts @@ -7,6 +7,7 @@ import { HttpClient } from '@angular/common/http'; import { trigger, transition, style, animate, stagger, query } from '@angular/animations'; import { NotificationService } from '../service/notification.service'; import { TranslateService } from '@ngx-translate/core'; +import { AuthService } from '../service/auth.service'; @Component({ selector: 'app-signatures', @@ -31,7 +32,7 @@ export class SignaturesComponent implements OnInit { count = 0; constructor(private translate: TranslateService, public http: HttpClient, public signaturesService: SignaturesContentService, private bottomSheetRef: MatBottomSheet, - private sanitization: DomSanitizer, public notificationService: NotificationService) { + private sanitization: DomSanitizer, public notificationService: NotificationService, public authService: AuthService) { } ngOnInit() { @@ -79,7 +80,7 @@ export class SignaturesComponent implements OnInit { const r = confirm(this.translate.instant('lang.wantDeleteSignature')); if (r) { - this.http.delete('../rest/users/' + this.signaturesService.userLogged.id + '/signatures/' + signature.id) + this.http.delete('../rest/users/' + this.authService.user.id + '/signatures/' + signature.id) .subscribe(() => { this.signaturesService.signaturesList.splice(i, 1); this.notificationService.success('lang.signatureDeleted'); @@ -135,7 +136,7 @@ export class SignaturesComponent implements OnInit { 'encodedSignature': newEncodedSign, 'format': 'png' }; - this.http.post('../rest/users/' + this.signaturesService.userLogged.id + '/signatures', newSign) + this.http.post('../rest/users/' + this.authService.user.id + '/signatures', newSign) .subscribe((data: any) => { newSign.id = data.signatureId; this.signaturesService.newSign = newSign;