From 4ecea1f5ad876eadfaa63c9625ebbce1fa9fa5e0 Mon Sep 17 00:00:00 2001 From: Qian Deng Date: Wed, 15 Aug 2018 15:10:20 +0800 Subject: [PATCH] Fix incorrect UI views when logging in with a user in the group assigned with proper role This caused by project routing guard using a wrong way to get the project role info. Signed-off-by: Qian Deng --- .../chart-detail/chart-detail.component.ts | 2 +- .../list-chart-versions.component.ts | 2 +- .../project-detail/project-detail.component.ts | 2 +- .../project/project-routing-resolver.service.ts | 16 +++++++--------- 4 files changed, 10 insertions(+), 12 deletions(-) diff --git a/src/ui_ng/src/app/project/chart-detail/chart-detail.component.ts b/src/ui_ng/src/app/project/chart-detail/chart-detail.component.ts index 6861da381..a1751fa95 100644 --- a/src/ui_ng/src/app/project/chart-detail/chart-detail.component.ts +++ b/src/ui_ng/src/app/project/chart-detail/chart-detail.component.ts @@ -36,7 +36,7 @@ export class ChartDetailComponent implements OnInit { let resolverData = this.route.snapshot.data; if (resolverData) { this.project = (resolverData["projectResolver"]); - this.roleName = RoleMapping[this.project.role_name]; + this.roleName = this.project.role_name; this.hasProjectAdminRole = this.project.has_project_admin_role; } } diff --git a/src/ui_ng/src/app/project/list-chart-versions/list-chart-versions.component.ts b/src/ui_ng/src/app/project/list-chart-versions/list-chart-versions.component.ts index a200bac36..2abe7f009 100644 --- a/src/ui_ng/src/app/project/list-chart-versions/list-chart-versions.component.ts +++ b/src/ui_ng/src/app/project/list-chart-versions/list-chart-versions.component.ts @@ -40,7 +40,7 @@ export class ListChartVersionsComponent implements OnInit { if (resolverData) { let project = (resolverData["projectResolver"]); this.hasProjectAdminRole = project.has_project_admin_role; - this.roleName = RoleMapping[project.role_name]; + this.roleName = project.role_name; this.projectName = project.name; } } diff --git a/src/ui_ng/src/app/project/project-detail/project-detail.component.ts b/src/ui_ng/src/app/project/project-detail/project-detail.component.ts index 2d8f5d0c4..02f433f39 100644 --- a/src/ui_ng/src/app/project/project-detail/project-detail.component.ts +++ b/src/ui_ng/src/app/project/project-detail/project-detail.component.ts @@ -46,7 +46,7 @@ export class ProjectDetailComponent { this.route.data.subscribe(data => { this.currentProject = data['projectResolver']; this.isMember = this.currentProject.is_member; - this.roleName = RoleMapping[this.currentProject.role_name]; + this.roleName = this.currentProject.role_name; }); } diff --git a/src/ui_ng/src/app/project/project-routing-resolver.service.ts b/src/ui_ng/src/app/project/project-routing-resolver.service.ts index c327ca621..1b92711f8 100644 --- a/src/ui_ng/src/app/project/project-routing-resolver.service.ts +++ b/src/ui_ng/src/app/project/project-routing-resolver.service.ts @@ -1,3 +1,4 @@ +import { RoleInfo } from './../shared/shared.const'; // Copyright (c) 2017 VMware, Inc. All Rights Reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); @@ -40,17 +41,14 @@ export class ProjectRoutingResolver implements Resolve { if (project) { let currentUser = this.sessionService.getCurrentUser(); if (currentUser) { - let projectMembers = this.sessionService.getProjectMembers(); - if (projectMembers) { - let currentMember = projectMembers.find(m => m.entity_id === currentUser.user_id); - if (currentMember) { - project.is_member = true; - project.has_project_admin_role = (currentMember.role_name === 'projectAdmin'); - project.role_name = currentMember.role_name; - } - } if (currentUser.has_admin_role) { project.has_project_admin_role = true; + project.is_member = true; + project.role_name = 'MEMBER.SYS_ADMIN'; + } else { + project.has_project_admin_role = (project.current_user_role_id === 1); + project.is_member = (project.current_user_role_id > 0); + project.role_name = RoleInfo[project.current_user_role_id]; } } return project;