From ea075fbd8f286b11f3760b5eaec153b3ed0230f9 Mon Sep 17 00:00:00 2001 From: Kristof De Langhe Date: Mon, 10 Sep 2018 08:44:56 +0200 Subject: [PATCH] Correct parsing of AuthStatus and small changes --- src/app/core/auth/auth-response-parsing.service.ts | 5 +++-- src/app/core/auth/auth.service.ts | 2 +- src/app/core/auth/models/auth-status.model.ts | 2 +- src/app/core/auth/models/normalized-auth-status.model.ts | 2 +- src/app/core/auth/server-auth.service.ts | 2 +- src/app/shared/testing/auth-request-service-stub.ts | 4 ++-- src/app/shared/testing/auth-service-stub.ts | 2 +- 7 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/app/core/auth/auth-response-parsing.service.ts b/src/app/core/auth/auth-response-parsing.service.ts index 80c1b2eeca..f024035c06 100644 --- a/src/app/core/auth/auth-response-parsing.service.ts +++ b/src/app/core/auth/auth-response-parsing.service.ts @@ -26,8 +26,9 @@ export class AuthResponseParsingService extends BaseResponseParsingService imple parse(request: RestRequest, data: DSpaceRESTV2Response): RestResponse { if (isNotEmpty(data.payload) && isNotEmpty(data.payload._links) && (data.statusCode === '200' || data.statusCode === 'OK')) { - const response = this.process(data.payload, request.href); - return new AuthStatusResponse(response[Object.keys(response)[0]][0], data.statusCode); + const response: AuthStatus = this.process(data.payload, request.href); + response.eperson = data.payload._embedded.eperson; + return new AuthStatusResponse(response, data.statusCode); } else { return new AuthStatusResponse(data.payload as AuthStatus, data.statusCode); } diff --git a/src/app/core/auth/auth.service.ts b/src/app/core/auth/auth.service.ts index 2848b54b50..2eb6736d89 100644 --- a/src/app/core/auth/auth.service.ts +++ b/src/app/core/auth/auth.service.ts @@ -126,7 +126,7 @@ export class AuthService { return this.authRequestService.getRequest('status', options) .map((status: AuthStatus) => { if (status.authenticated) { - return status.eperson[0]; + return status.eperson; } else { throw(new Error('Not authenticated')); } diff --git a/src/app/core/auth/models/auth-status.model.ts b/src/app/core/auth/models/auth-status.model.ts index 22c9d14718..9d69c18388 100644 --- a/src/app/core/auth/models/auth-status.model.ts +++ b/src/app/core/auth/models/auth-status.model.ts @@ -13,7 +13,7 @@ export class AuthStatus { error?: AuthError; - eperson: Eperson[]; + eperson: Eperson; token?: AuthTokenInfo; diff --git a/src/app/core/auth/models/normalized-auth-status.model.ts b/src/app/core/auth/models/normalized-auth-status.model.ts index 19952f7c70..c63c611a75 100644 --- a/src/app/core/auth/models/normalized-auth-status.model.ts +++ b/src/app/core/auth/models/normalized-auth-status.model.ts @@ -21,6 +21,6 @@ export class NormalizedAuthStatus extends NormalizedDSpaceObject { authenticated: boolean; @autoserializeAs(Eperson) - eperson: Eperson[]; + eperson: Eperson; } diff --git a/src/app/core/auth/server-auth.service.ts b/src/app/core/auth/server-auth.service.ts index 96ee2e355a..00dfbc5615 100644 --- a/src/app/core/auth/server-auth.service.ts +++ b/src/app/core/auth/server-auth.service.ts @@ -35,7 +35,7 @@ export class ServerAuthService extends AuthService { return this.authRequestService.getRequest('status', options) .map((status: AuthStatus) => { if (status.authenticated) { - return status.eperson[0]; + return status.eperson; } else { throw(new Error('Not authenticated')); } diff --git a/src/app/shared/testing/auth-request-service-stub.ts b/src/app/shared/testing/auth-request-service-stub.ts index 2c47068af4..9703f49967 100644 --- a/src/app/shared/testing/auth-request-service-stub.ts +++ b/src/app/shared/testing/auth-request-service-stub.ts @@ -26,7 +26,7 @@ export class AuthRequestServiceStub { if (this.validateToken(token)) { authStatusStub.authenticated = true; authStatusStub.token = this.mockTokenInfo; - authStatusStub.eperson = [this.mockUser]; + authStatusStub.eperson = this.mockUser; } else { authStatusStub.authenticated = false; } @@ -45,7 +45,7 @@ export class AuthRequestServiceStub { if (this.validateToken(token)) { authStatusStub.authenticated = true; authStatusStub.token = this.mockTokenInfo; - authStatusStub.eperson = [this.mockUser]; + authStatusStub.eperson = this.mockUser; } else { authStatusStub.authenticated = false; } diff --git a/src/app/shared/testing/auth-service-stub.ts b/src/app/shared/testing/auth-service-stub.ts index c7d5556910..9e830930c1 100644 --- a/src/app/shared/testing/auth-service-stub.ts +++ b/src/app/shared/testing/auth-service-stub.ts @@ -19,7 +19,7 @@ export class AuthServiceStub { authStatus.okay = true; authStatus.authenticated = true; authStatus.token = this.token; - authStatus.eperson = [EpersonMock]; + authStatus.eperson = EpersonMock; return Observable.of(authStatus); } else { console.log('error');