From 1b82dde39f82ccdc21f2dedb9a11cfd489a76e41 Mon Sep 17 00:00:00 2001 From: Bastian Rihm Date: Tue, 15 Oct 2024 14:31:59 +0200 Subject: [PATCH] Use motionCanSeeOrigin permission --- .../app/domain/definitions/permission-relations.ts | 5 ++++- .../src/app/domain/definitions/permission.config.ts | 4 ++++ client/src/app/domain/definitions/permission.ts | 1 + .../motion-meta-data/motion-meta-data.component.html | 11 +++++------ .../components/motion-view/motion-view.component.ts | 5 +++++ 5 files changed, 19 insertions(+), 7 deletions(-) diff --git a/client/src/app/domain/definitions/permission-relations.ts b/client/src/app/domain/definitions/permission-relations.ts index 6e2d69dc15..79b3be04e0 100644 --- a/client/src/app/domain/definitions/permission-relations.ts +++ b/client/src/app/domain/definitions/permission-relations.ts @@ -40,6 +40,7 @@ export const permissionChildren: PermissionsMap = { 'motion.can_manage_polls': [Permission.motionCanSee], 'motion.can_see': [], 'motion.can_see_internal': [Permission.motionCanSee], + 'motion.can_see_origin': [Permission.motionCanSee], 'motion.can_support': [Permission.motionCanSee], 'poll.can_manage': [], 'projector.can_manage': [Permission.projectorCanSee], @@ -102,8 +103,10 @@ export const permissionParents: PermissionsMap = { Permission.motionCanCreate, Permission.motionCanCreateAmendments, Permission.motionCanForward, - Permission.motionCanSupport + Permission.motionCanSupport, + Permission.motionCanSeeOrigin ], + 'motion.can_see_origin': [], 'motion.can_see_internal': [Permission.motionCanManage], 'motion.can_support': [], 'poll.can_manage': [], diff --git a/client/src/app/domain/definitions/permission.config.ts b/client/src/app/domain/definitions/permission.config.ts index e53f46d07d..e8a2b3cb9c 100644 --- a/client/src/app/domain/definitions/permission.config.ts +++ b/client/src/app/domain/definitions/permission.config.ts @@ -142,6 +142,10 @@ Further requirements: ), value: Permission.motionCanForward }, + { + display_name: _(`Can see origin motion`), + value: Permission.motionCanSeeOrigin + }, { display_name: _(`Can support motions`), help_text: _( diff --git a/client/src/app/domain/definitions/permission.ts b/client/src/app/domain/definitions/permission.ts index 9b7979e098..e3336912a6 100644 --- a/client/src/app/domain/definitions/permission.ts +++ b/client/src/app/domain/definitions/permission.ts @@ -34,6 +34,7 @@ export enum Permission { motionCanSee = `motion.can_see`, motionCanSeeInternal = `motion.can_see_internal`, motionCanSupport = `motion.can_support`, + motionCanSeeOrigin = `motion.can_see_origin`, pollCanManage = `poll.can_manage`, projectorCanManage = `projector.can_manage`, projectorCanSee = `projector.can_see`, diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-meta-data/motion-meta-data.component.html b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-meta-data/motion-meta-data.component.html index d71ca2bfb4..8095543418 100644 --- a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-meta-data/motion-meta-data.component.html +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-meta-data/motion-meta-data.component.html @@ -341,12 +341,11 @@

{{ 'Origin' | translate }}

@for (origin of originMotions; track origin.id; let last = $last) {
- @if (canAccess(origin)) { - - } +
@if (!last) { diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-view/motion-view.component.ts b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-view/motion-view.component.ts index a462d6d253..302f355682 100644 --- a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-view/motion-view.component.ts +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-view/motion-view.component.ts @@ -52,6 +52,7 @@ import { AmendmentListSortService } from '../../../../../../services/list/amendm import { MotionListFilterService } from '../../../../../../services/list/motion-list-filter.service/motion-list-filter.service'; import { MotionListSortService } from '../../../../../../services/list/motion-list-sort.service/motion-list-sort.service'; import { MotionDetailViewOriginUrlService } from '../../../../services/motion-detail-view-originurl.service'; +import { MeetingRepositoryService } from 'src/app/gateways/repositories/meeting-repository.service'; @Component({ selector: `os-motion-view`, @@ -144,6 +145,7 @@ export class MotionViewComponent extends BaseMeetingComponent implements OnInit, public perms: MotionPermissionService, private route: ActivatedRoute, public repo: MotionControllerService, + private meetingRepo: MeetingRepositoryService, private promptService: PromptService, private itemRepo: AgendaItemControllerService, private motionSortService: MotionListSortService, @@ -357,6 +359,9 @@ export class MotionViewComponent extends BaseMeetingComponent implements OnInit, const originMotion = this.repo.getViewModelUnsafe(id); if (!this.originMotionsLoaded.find(m => m.id === id)) { + const meeting = this.meetingRepo.getViewModelUnsafe(originMotion.meeting_id); + originMotion.meeting = meeting; + this.originMotionsLoaded.push(originMotion); this.originMotionsLoaded.sort((a, b) => b.id - a.id); const changeRecos = await firstValueFrom(