mirror of
https://github.com/goharbor/harbor.git
synced 2024-11-06 18:50:09 +01:00
Fix issues about tags action.
This commit is contained in:
parent
f7a4a21066
commit
bcb1dff59d
@ -94,6 +94,7 @@ const harborRoutes: Routes = [
|
||||
{
|
||||
path: 'tags/:id/:repo',
|
||||
component: TagRepositoryComponent,
|
||||
canActivate: [MemberGuard],
|
||||
resolve: {
|
||||
projectResolver: ProjectRoutingResolver
|
||||
}
|
||||
|
@ -33,20 +33,39 @@ export class MemberGuard implements CanActivate, CanActivateChild {
|
||||
let projectId = route.params['id'];
|
||||
this.sessionService.setProjectMembers([]);
|
||||
return new Promise((resolve, reject) => {
|
||||
this.projectService.checkProjectMember(projectId)
|
||||
let user = this.sessionService.getCurrentUser();
|
||||
if(user === null) {
|
||||
this.sessionService.retrieveUser().then(currentUser=>{
|
||||
return resolve(this.checkMemberStatus(state.url, projectId));
|
||||
}).catch(err=>resolve(true));
|
||||
} else {
|
||||
return resolve(this.checkMemberStatus(state.url, projectId));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
checkMemberStatus(url: string, projectId: number): Promise<boolean> {
|
||||
return new Promise<boolean>((resolve, reject)=>{
|
||||
this.projectService.checkProjectMember(projectId)
|
||||
.subscribe(
|
||||
res=>{
|
||||
this.sessionService.setProjectMembers(res);
|
||||
return resolve(true)
|
||||
},
|
||||
error => {
|
||||
//Add exception for repository in project detail router activation.
|
||||
if(state.url.endsWith('repository')) {
|
||||
return resolve(true);
|
||||
}
|
||||
this.router.navigate([CommonRoutes.HARBOR_DEFAULT]);
|
||||
return resolve(false);
|
||||
});
|
||||
res=>{
|
||||
this.sessionService.setProjectMembers(res);
|
||||
return resolve(true);
|
||||
},
|
||||
error => {
|
||||
//Add exception for repository in project detail router activation.
|
||||
if(url.endsWith('repository')) {
|
||||
return resolve(true);
|
||||
}
|
||||
this.projectService.getProject(projectId)
|
||||
.subscribe(project=>{
|
||||
if(project.public === 1) {
|
||||
return resolve(true);
|
||||
}
|
||||
this.router.navigate([CommonRoutes.HARBOR_DEFAULT]);
|
||||
return resolve(false);
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user