Skip to content

Commit

Permalink
Use motionCanSeeOrigin permission
Browse files Browse the repository at this point in the history
  • Loading branch information
bastianjoel committed Oct 15, 2024
1 parent a8f0f3a commit 1b82dde
Show file tree
Hide file tree
Showing 5 changed files with 19 additions and 7 deletions.
5 changes: 4 additions & 1 deletion client/src/app/domain/definitions/permission-relations.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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],
Expand Down Expand Up @@ -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': [],
Expand Down
4 changes: 4 additions & 0 deletions client/src/app/domain/definitions/permission.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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: _(
Expand Down
1 change: 1 addition & 0 deletions client/src/app/domain/definitions/permission.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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`,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -341,12 +341,11 @@ <h4>{{ 'Origin' | translate }}</h4>
@for (origin of originMotions; track origin.id; let last = $last) {
<div>
<ng-container *ngTemplateOutlet="meetingLink; context: { motion: origin }"></ng-container>
@if (canAccess(origin)) {
<mat-slide-toggle
[aria-label]="'Load origin motion' | translate"
(change)="toggleOriginMotion($event, origin.id)"
></mat-slide-toggle>
}
<mat-slide-toggle
*osPerms="permission.motionCanSeeOrigin"
[aria-label]="'Load origin motion' | translate"
(change)="toggleOriginMotion($event, origin.id)"
></mat-slide-toggle>
</div>
<div class="flex-center">
@if (!last) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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`,
Expand Down Expand Up @@ -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,
Expand Down Expand Up @@ -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(
Expand Down

0 comments on commit 1b82dde

Please sign in to comment.