mirror of
https://github.com/goharbor/harbor.git
synced 2025-02-03 13:31:22 +01:00
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:
parent
e5f9fe5961
commit
4ecea1f5ad
@ -36,7 +36,7 @@ export class ChartDetailComponent implements OnInit {
|
|||||||
let resolverData = this.route.snapshot.data;
|
let resolverData = this.route.snapshot.data;
|
||||||
if (resolverData) {
|
if (resolverData) {
|
||||||
this.project = <Project>(resolverData["projectResolver"]);
|
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;
|
this.hasProjectAdminRole = this.project.has_project_admin_role;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -40,7 +40,7 @@ export class ListChartVersionsComponent implements OnInit {
|
|||||||
if (resolverData) {
|
if (resolverData) {
|
||||||
let project = <Project>(resolverData["projectResolver"]);
|
let project = <Project>(resolverData["projectResolver"]);
|
||||||
this.hasProjectAdminRole = project.has_project_admin_role;
|
this.hasProjectAdminRole = project.has_project_admin_role;
|
||||||
this.roleName = RoleMapping[project.role_name];
|
this.roleName = project.role_name;
|
||||||
this.projectName = project.name;
|
this.projectName = project.name;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -46,7 +46,7 @@ export class ProjectDetailComponent {
|
|||||||
this.route.data.subscribe(data => {
|
this.route.data.subscribe(data => {
|
||||||
this.currentProject = <Project>data['projectResolver'];
|
this.currentProject = <Project>data['projectResolver'];
|
||||||
this.isMember = this.currentProject.is_member;
|
this.isMember = this.currentProject.is_member;
|
||||||
this.roleName = RoleMapping[this.currentProject.role_name];
|
this.roleName = this.currentProject.role_name;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
import { RoleInfo } from './../shared/shared.const';
|
||||||
// Copyright (c) 2017 VMware, Inc. All Rights Reserved.
|
// Copyright (c) 2017 VMware, Inc. All Rights Reserved.
|
||||||
//
|
//
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
@ -40,17 +41,14 @@ export class ProjectRoutingResolver implements Resolve<Project> {
|
|||||||
if (project) {
|
if (project) {
|
||||||
let currentUser = this.sessionService.getCurrentUser();
|
let currentUser = this.sessionService.getCurrentUser();
|
||||||
if (currentUser) {
|
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) {
|
if (currentUser.has_admin_role) {
|
||||||
project.has_project_admin_role = true;
|
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;
|
return project;
|
||||||
|
Loading…
Reference in New Issue
Block a user