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 <dengq@vmware.com>
This commit is contained in:
Qian Deng 2018-08-15 15:10:20 +08:00
parent e5f9fe5961
commit 4ecea1f5ad
4 changed files with 10 additions and 12 deletions

View File

@ -36,7 +36,7 @@ export class ChartDetailComponent implements OnInit {
let resolverData = this.route.snapshot.data;
if (resolverData) {
this.project = <Project>(resolverData["projectResolver"]);
this.roleName = RoleMapping[this.project.role_name];
this.roleName = this.project.role_name;
this.hasProjectAdminRole = this.project.has_project_admin_role;
}
}

View File

@ -40,7 +40,7 @@ export class ListChartVersionsComponent implements OnInit {
if (resolverData) {
let project = <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;
}
}

View File

@ -46,7 +46,7 @@ export class ProjectDetailComponent {
this.route.data.subscribe(data => {
this.currentProject = <Project>data['projectResolver'];
this.isMember = this.currentProject.is_member;
this.roleName = RoleMapping[this.currentProject.role_name];
this.roleName = this.currentProject.role_name;
});
}

View File

@ -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<Project> {
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;