This is an automated email from the ASF dual-hosted git repository. dgnatyshyn pushed a commit to branch DLAB-1758 in repository https://gitbox.apache.org/repos/asf/incubator-dlab.git
commit 1b3f07c18a9322d6d788255ef595183869bff6d0 Author: Dmytro_Gnatyshyn <di1...@ukr.net> AuthorDate: Wed Jun 10 12:06:19 2020 +0300 [DLAB-1758]: Connect audit UI with backend --- .../services/applicationServiceFacade.service.ts | 16 ++++++++ .../webapp/src/app/core/services/audit.service.ts | 45 ++++++++++++++-------- .../src/app/reports/audit/audit.component.ts | 7 +++- .../cluster-details/cluster-details.component.ts | 5 ++- .../detail-dialog/detail-dialog.component.ts | 3 ++ 5 files changed, 58 insertions(+), 18 deletions(-) diff --git a/services/self-service/src/main/resources/webapp/src/app/core/services/applicationServiceFacade.service.ts b/services/self-service/src/main/resources/webapp/src/app/core/services/applicationServiceFacade.service.ts index a207f97..7f125b3 100644 --- a/services/self-service/src/main/resources/webapp/src/app/core/services/applicationServiceFacade.service.ts +++ b/services/self-service/src/main/resources/webapp/src/app/core/services/applicationServiceFacade.service.ts @@ -77,6 +77,7 @@ export class ApplicationServiceFacade { private static readonly PROJECT = 'project'; private static readonly ENDPOINT = 'endpoint'; private static readonly ENDPOINT_CONNECTION = 'endpoint_connection'; + private static readonly AUDIT = 'audit'; private requestRegistry: Dictionary<string>; @@ -627,6 +628,18 @@ export class ApplicationServiceFacade { null); } + public getAuditList(): Observable<any> { + return this.buildRequest(HTTPMethod.GET, + this.requestRegistry.Item(ApplicationServiceFacade.AUDIT), + null); + } + + public postActionToAudit(data): Observable<any> { + return this.buildRequest(HTTPMethod.POST, + this.requestRegistry.Item(ApplicationServiceFacade.AUDIT), + data); + } + private setupRegistry(): void { this.requestRegistry = new Dictionary<string>(); @@ -709,6 +722,9 @@ export class ApplicationServiceFacade { this.requestRegistry.Add(ApplicationServiceFacade.PROJECT, '/api/project'); this.requestRegistry.Add(ApplicationServiceFacade.ENDPOINT, '/api/endpoint'); this.requestRegistry.Add(ApplicationServiceFacade.ENDPOINT_CONNECTION, '/api/endpoint/url/'); + + // audit + this.requestRegistry.Add(ApplicationServiceFacade.AUDIT, '/api/audit'); } private buildRequest(method: HTTPMethod, url_path: string, body: any, opt?) { diff --git a/services/self-service/src/main/resources/webapp/src/app/core/services/audit.service.ts b/services/self-service/src/main/resources/webapp/src/app/core/services/audit.service.ts index f699632..70d1f17 100644 --- a/services/self-service/src/main/resources/webapp/src/app/core/services/audit.service.ts +++ b/services/self-service/src/main/resources/webapp/src/app/core/services/audit.service.ts @@ -1,5 +1,7 @@ import { Injectable } from '@angular/core'; import {ApplicationServiceFacade} from './applicationServiceFacade.service'; +import {catchError, map} from 'rxjs/operators'; +import {ErrorUtils} from '../util'; @Injectable({ providedIn: 'root' @@ -9,21 +11,34 @@ export class AuditService { } public getAuditData() { - return [ - {user: 'Dlab-test-user1', action: 'Deleted users from group', project: '', date: new Date().toLocaleString(), info: {name: 'admin', objects: ['user1', 'user2', 'user3', 'Dlab-test-user1', 'Dlab-test-user1', 'Dlab-test-user1', 'Dlab-test-user1', 'Dlab-test-user1', 'Dlab-test-user1']}}, - {user: 'Dlab-test-user1', action: 'Created project', project: 'ProjectA', date: new Date().toLocaleString()}, - {user: 'Dlab-test-user1', action: 'Created project', project: 'ProjectA', date: new Date().toLocaleString()}, - {user: 'Dlab-test-user1', action: 'Created project', project: 'ProjectA', date: new Date().toLocaleString()}, - {user: 'Dlab-test-user2', action: 'Created notebook ', project: 'ProjectA', resource: 'Rstudio', date: new Date().toLocaleString()}, - {user: 'Dlab-test-user1', action: 'Deleted user to group', project: '', date: new Date().toLocaleString(), info: {name: 'admin', objects: ['user1', 'user2', 'user3', 'Dlab-test-user1', 'Dlab-test-user1', 'Dlab-test-user1', 'Dlab-test-user1', 'Dlab-test-user1', 'Dlab-test-user1']}}, - {user: 'Dlab-test-user1', action: 'Stopped notebook', project: 'ProjectA', resource: 'Rstudio', date: new Date().toLocaleString()}, - {user: 'Dlab-test-user1', action: 'Started notebook', project: 'ProjectA', resource: 'Rstudio', date: new Date().toLocaleString()}, - {user: 'Dlab-test-user1', action: 'Deleted Users from group', project: '', date: new Date().toLocaleString(), info: {name: 'admin', objects: ['user1', 'user2', 'user3', 'Dlab-test-user1', 'Dlab-test-user1', 'Dlab-test-user1', 'Dlab-test-user1', 'Dlab-test-user1', 'Dlab-test-user1']}}, - {user: 'Dlab-test-user3', action: 'Created EMR', project: 'ProjectA', resource: 'Rstudio:Emr1', date: new Date().toLocaleString()}, - {user: 'Dlab-test-user1', action: 'Created notebook', project: 'ProjectA', resource: 'Rstudio', date: new Date().toLocaleString()}, - {user: 'Dlab-test-user1', action: 'Deleted user to group', project: '', date: new Date().toLocaleString(), info: {name: 'admin', objects: ['user1', 'user2', 'user3', 'Dlab-test-user1', 'Dlab-test-user1', 'Dlab-test-user1', 'Dlab-test-user1', 'Dlab-test-user1', 'Dlab-test-user1']}}, - {user: 'Dlab-test-user2', action: 'Terminated notebook', project: 'ProjectA', resource: 'Rstudio', date: new Date().toLocaleString()}, - ]; + return this.applicationServiceFacade + .getAuditList() + .pipe( + map(response => response), + catchError(ErrorUtils.handleServiceError)); } + public sendDataToAudit(data) { + return this.applicationServiceFacade + .postActionToAudit(data) + .pipe( + map(response => response), + catchError(ErrorUtils.handleServiceError)); + } + // return [ + // {user: 'Dlab-test-user1', action: 'Deleted users from group', project: '', date: new Date().toLocaleString(), info: {name: 'admin', objects: ['user1', 'user2', 'user3', 'Dlab-test-user1', 'Dlab-test-user1', 'Dlab-test-user1', 'Dlab-test-user1', 'Dlab-test-user1', 'Dlab-test-user1']}}, + // {user: 'Dlab-test-user1', action: 'Created project', project: 'ProjectA', date: new Date().toLocaleString()}, + // {user: 'Dlab-test-user1', action: 'Created project', project: 'ProjectA', date: new Date().toLocaleString()}, + // {user: 'Dlab-test-user1', action: 'Created project', project: 'ProjectA', date: new Date().toLocaleString()}, + // {user: 'Dlab-test-user2', action: 'Created notebook ', project: 'ProjectA', resource: 'Rstudio', date: new Date().toLocaleString()}, + // {user: 'Dlab-test-user1', action: 'Deleted user to group', project: '', date: new Date().toLocaleString(), info: {name: 'admin', objects: ['user1', 'user2', 'user3', 'Dlab-test-user1', 'Dlab-test-user1', 'Dlab-test-user1', 'Dlab-test-user1', 'Dlab-test-user1', 'Dlab-test-user1']}}, + // {user: 'Dlab-test-user1', action: 'Stopped notebook', project: 'ProjectA', resource: 'Rstudio', date: new Date().toLocaleString()}, + // {user: 'Dlab-test-user1', action: 'Started notebook', project: 'ProjectA', resource: 'Rstudio', date: new Date().toLocaleString()}, + // {user: 'Dlab-test-user1', action: 'Deleted Users from group', project: '', date: new Date().toLocaleString(), info: {name: 'admin', objects: ['user1', 'user2', 'user3', 'Dlab-test-user1', 'Dlab-test-user1', 'Dlab-test-user1', 'Dlab-test-user1', 'Dlab-test-user1', 'Dlab-test-user1']}}, + // {user: 'Dlab-test-user3', action: 'Created EMR', project: 'ProjectA', resource: 'Rstudio:Emr1', date: new Date().toLocaleString()}, + // {user: 'Dlab-test-user1', action: 'Created notebook', project: 'ProjectA', resource: 'Rstudio', date: new Date().toLocaleString()}, + // {user: 'Dlab-test-user1', action: 'Deleted user to group', project: '', date: new Date().toLocaleString(), info: {name: 'admin', objects: ['user1', 'user2', 'user3', 'Dlab-test-user1', 'Dlab-test-user1', 'Dlab-test-user1', 'Dlab-test-user1', 'Dlab-test-user1', 'Dlab-test-user1']}}, + // {user: 'Dlab-test-user2', action: 'Terminated notebook', project: 'ProjectA', resource: 'Rstudio', date: new Date().toLocaleString()}, + // ]; + } diff --git a/services/self-service/src/main/resources/webapp/src/app/reports/audit/audit.component.ts b/services/self-service/src/main/resources/webapp/src/app/reports/audit/audit.component.ts index 4bdd0ee..fba41b2 100644 --- a/services/self-service/src/main/resources/webapp/src/app/reports/audit/audit.component.ts +++ b/services/self-service/src/main/resources/webapp/src/app/reports/audit/audit.component.ts @@ -84,8 +84,11 @@ export class AuditComponent implements OnInit, OnDestroy { } public buildAuditReport() { - this.auditData = this.auditService.getAuditData(); - this.auditGrid.refreshAudit(this.auditData); + this.auditData = this.auditService.getAuditData().subscribe(auditData => { + console.log(auditData); + // this.auditGrid.refreshAudit(auditData); + }); + } diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/computational/cluster-details/cluster-details.component.ts b/services/self-service/src/main/resources/webapp/src/app/resources/computational/cluster-details/cluster-details.component.ts index 20bb53a..415cfaa 100644 --- a/services/self-service/src/main/resources/webapp/src/app/resources/computational/cluster-details/cluster-details.component.ts +++ b/services/self-service/src/main/resources/webapp/src/app/resources/computational/cluster-details/cluster-details.component.ts @@ -26,6 +26,7 @@ import { DateUtils, CheckUtils } from '../../../core/util'; import { DataengineConfigurationService } from '../../../core/services'; import { DICTIONARY } from '../../../../dictionary/global.dictionary'; import { CLUSTER_CONFIGURATION } from '../computational-resource-create-dialog/cluster-configuration-templates'; +import {AuditService} from '../../../core/services/audit.service'; @Component({ selector: 'dlab-cluster-details', @@ -52,7 +53,8 @@ export class DetailComputationalResourcesComponent implements OnInit { public toastr: ToastrService, public dialogRef: MatDialogRef<DetailComputationalResourcesComponent>, private dataengineConfigurationService: DataengineConfigurationService, - private _fb: FormBuilder + private _fb: FormBuilder, + private auditService: AuditService ) { } ngOnInit() { @@ -117,6 +119,7 @@ export class DetailComputationalResourcesComponent implements OnInit { } private logAction(name: any, description: string) { + this.auditService.sendDataToAudit({resource_name: name, info: ['User opened link' + description]}).subscribe(); console.log(`${name}: ${description}`); } } diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/detail-dialog/detail-dialog.component.ts b/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/detail-dialog/detail-dialog.component.ts index f30189c..b2788f5 100644 --- a/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/detail-dialog/detail-dialog.component.ts +++ b/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/detail-dialog/detail-dialog.component.ts @@ -28,6 +28,7 @@ import { DataengineConfigurationService } from '../../../core/services'; import { CLUSTER_CONFIGURATION } from '../../computational/computational-resource-create-dialog/cluster-configuration-templates'; import {BucketBrowserComponent} from '../../bucket-browser/bucket-browser.component'; import {CopyPathUtils} from '../../../core/util/copyPathUtils'; +import {AuditService} from '../../../core/services/audit.service'; @Component({ selector: 'detail-dialog', @@ -60,6 +61,7 @@ export class DetailDialogComponent implements OnInit { public dialogRef: MatDialogRef<DetailDialogComponent>, private dialog: MatDialog, public toastr: ToastrService, + public auditService: AuditService ) { } @@ -159,6 +161,7 @@ export class DetailDialogComponent implements OnInit { } private logAction(name: any, description: string) { + this.auditService.sendDataToAudit({resource_name: name, info: ['User opened link' + description]}).subscribe(); console.log(`${name}: ${description}`); } } --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@dlab.apache.org For additional commands, e-mail: commits-h...@dlab.apache.org