From 801a83ffd5e60d92a16f1a75f80b1a44e0d63c67 Mon Sep 17 00:00:00 2001 From: kunw Date: Thu, 23 Mar 2017 15:48:45 +0800 Subject: [PATCH] Add restriction for repositories and tags. --- .../list-repository.component.html | 2 +- .../list-repository.component.ts | 17 ++++++++++++++++- .../tag-repository.component.html | 2 +- .../tag-repository/tag-repository.component.ts | 18 +++++++++++++++++- 4 files changed, 35 insertions(+), 4 deletions(-) diff --git a/src/ui_ng/src/app/repository/list-repository/list-repository.component.html b/src/ui_ng/src/app/repository/list-repository/list-repository.component.html index 77ebb0461..6d483b344 100644 --- a/src/ui_ng/src/app/repository/list-repository/list-repository.component.html +++ b/src/ui_ng/src/app/repository/list-repository/list-repository.component.html @@ -3,7 +3,7 @@ {{'REPOSITORY.TAGS_COUNT' | translate}} {{'REPOSITORY.PULL_COUNT' | translate}} - + diff --git a/src/ui_ng/src/app/repository/list-repository/list-repository.component.ts b/src/ui_ng/src/app/repository/list-repository/list-repository.component.ts index 16d699b65..df2490d55 100644 --- a/src/ui_ng/src/app/repository/list-repository/list-repository.component.ts +++ b/src/ui_ng/src/app/repository/list-repository/list-repository.component.ts @@ -7,6 +7,9 @@ import { SearchTriggerService } from '../../base/global-search/search-trigger.se import { SessionService } from '../../shared/session.service'; import { ListMode } from '../../shared/shared.const'; +import { SessionUser } from '../../shared/session-user'; +import { Member } from '../../project/member/member'; + @Component({ selector: 'list-repository', templateUrl: 'list-repository.component.html' @@ -25,10 +28,22 @@ export class ListRepositoryComponent { pageOffset: number = 1; + hasProjectAdminRole: boolean; + constructor( private router: Router, private searchTrigger: SearchTriggerService, - private session: SessionService) { } + private session: SessionService) { + //Get current user from registered resolver. + let currentUser = session.getCurrentUser(); + let projectMembers: Member[] = session.getProjectMembers(); + if(currentUser && projectMembers) { + let currentMember = projectMembers.find(m=>m.user_id === currentUser.user_id); + if(currentMember) { + this.hasProjectAdminRole = (currentMember.role_name === 'projectAdmin'); + } + } + } deleteRepo(repoName: string) { this.delete.emit(repoName); diff --git a/src/ui_ng/src/app/repository/tag-repository/tag-repository.component.html b/src/ui_ng/src/app/repository/tag-repository/tag-repository.component.html index eafde9e11..5dff71967 100644 --- a/src/ui_ng/src/app/repository/tag-repository/tag-repository.component.html +++ b/src/ui_ng/src/app/repository/tag-repository/tag-repository.component.html @@ -10,7 +10,7 @@ {{'REPOSITORY.ARCHITECTURE' | translate}} {{'REPOSITORY.OS' | translate}} - + {{t.tag}} diff --git a/src/ui_ng/src/app/repository/tag-repository/tag-repository.component.ts b/src/ui_ng/src/app/repository/tag-repository/tag-repository.component.ts index 63ca5c0ab..6b7211c29 100644 --- a/src/ui_ng/src/app/repository/tag-repository/tag-repository.component.ts +++ b/src/ui_ng/src/app/repository/tag-repository/tag-repository.component.ts @@ -15,6 +15,9 @@ import { TagView } from '../tag-view'; import { AppConfigService } from '../../app-config.service'; +import { SessionService } from '../../shared/session.service'; +import { Member } from '../../project/member/member'; + @Component({ moduleId: module.id, selector: 'tag-repository', @@ -26,6 +29,8 @@ export class TagRepositoryComponent implements OnInit, OnDestroy { projectId: number; repoName: string; + hasProjectAdminRole: boolean; + tags: TagView[]; registryUrl: string; withNotary: boolean; @@ -37,7 +42,18 @@ export class TagRepositoryComponent implements OnInit, OnDestroy { private messageService: MessageService, private deletionDialogService: ConfirmationDialogService, private repositoryService: RepositoryService, - private appConfigService: AppConfigService) { + private appConfigService: AppConfigService, + private session: SessionService){ + + let currentUser = session.getCurrentUser(); + let projectMembers: Member[] = session.getProjectMembers(); + if(currentUser && projectMembers) { + let currentMember = projectMembers.find(m=>m.user_id === currentUser.user_id); + if(currentMember) { + this.hasProjectAdminRole = (currentMember.role_name === 'projectAdmin'); + } + } + this.subscription = this.deletionDialogService.confirmationConfirm$.subscribe( message => { if (message &&