diff --git a/client/src/app/site/pages/organization/organization.subscription.ts b/client/src/app/site/pages/organization/organization.subscription.ts
index f4748dca32..cb5e1fd2a5 100644
--- a/client/src/app/site/pages/organization/organization.subscription.ts
+++ b/client/src/app/site/pages/organization/organization.subscription.ts
@@ -58,7 +58,8 @@ function getMeetingListFollowConfig(
idField: idField,
follow: [
{ idField: `committee_id`, fieldset: `name` },
- { idField: `organization_tag_ids`, fieldset: FULL_FIELDSET }
+ { idField: `organization_tag_ids`, fieldset: FULL_FIELDSET },
+ { idField: `group_ids`, fieldset: [`name`, `permissions`] }
],
fieldset: `list`
};
diff --git a/client/src/app/site/pages/organization/pages/committees/committees.subscription.ts b/client/src/app/site/pages/organization/pages/committees/committees.subscription.ts
index f61b7d8630..5b05ecadfa 100644
--- a/client/src/app/site/pages/organization/pages/committees/committees.subscription.ts
+++ b/client/src/app/site/pages/organization/pages/committees/committees.subscription.ts
@@ -62,7 +62,13 @@ export const getCommitteeDetailSubscriptionConfig: SubscriptionConfigGenerator =
follow: [{ idField: `meeting_user_ids`, fieldset: `groups` }]
},
{
- idField: `meeting_ids`
+ idField: `meeting_ids`,
+ follow: [
+ {
+ idField: `group_ids`,
+ fieldset: [`permissions`, `name`]
+ }
+ ]
}
]
},
diff --git a/client/src/app/site/pages/organization/pages/committees/modules/committee-meeting-preview/committee-meeting-preview.component.html b/client/src/app/site/pages/organization/pages/committees/modules/committee-meeting-preview/committee-meeting-preview.component.html
index 2cc1e68136..17172b6cf9 100644
--- a/client/src/app/site/pages/organization/pages/committees/modules/committee-meeting-preview/committee-meeting-preview.component.html
+++ b/client/src/app/site/pages/organization/pages/committees/modules/committee-meeting-preview/committee-meeting-preview.component.html
@@ -80,18 +80,20 @@
-
-
+ @if (showParticipants) {
+
+
+ }
diff --git a/client/src/app/site/pages/organization/pages/committees/modules/committee-meeting-preview/committee-meeting-preview.component.ts b/client/src/app/site/pages/organization/pages/committees/modules/committee-meeting-preview/committee-meeting-preview.component.ts
index 23d81a2c51..87bebc6b67 100644
--- a/client/src/app/site/pages/organization/pages/committees/modules/committee-meeting-preview/committee-meeting-preview.component.ts
+++ b/client/src/app/site/pages/organization/pages/committees/modules/committee-meeting-preview/committee-meeting-preview.component.ts
@@ -20,6 +20,7 @@ export class CommitteeMeetingPreviewComponent {
@Input() public meeting!: ViewMeeting;
@Input() public committee!: ViewCommittee;
@Input() public isCMAndRequireDuplicateFrom!: boolean;
+ @Input() public showParticipants!: boolean;
public readonly OML = OML;
public readonly CML = CML;
diff --git a/client/src/app/site/pages/organization/pages/committees/pages/committee-detail/modules/committee-detail-view/components/committee-detail-view/committee-detail-view.component.html b/client/src/app/site/pages/organization/pages/committees/pages/committee-detail/modules/committee-detail-view/components/committee-detail-view/committee-detail-view.component.html
index 4008772147..f3690ec842 100644
--- a/client/src/app/site/pages/organization/pages/committees/pages/committee-detail/modules/committee-detail-view/components/committee-detail-view/committee-detail-view.component.html
+++ b/client/src/app/site/pages/organization/pages/committees/pages/committee-detail/modules/committee-detail-view/components/committee-detail-view/committee-detail-view.component.html
@@ -137,12 +137,13 @@
}
- @for (meeting of getMeetingsSorted(committee); track meeting) {
+ @for (meeting of getMeetingsSorted(committee); track meeting.id) {
}
diff --git a/client/src/app/site/pages/organization/pages/committees/pages/committee-detail/modules/committee-detail-view/components/committee-detail-view/committee-detail-view.component.ts b/client/src/app/site/pages/organization/pages/committees/pages/committee-detail/modules/committee-detail-view/components/committee-detail-view/committee-detail-view.component.ts
index 8a803dedd5..c2bb19a506 100644
--- a/client/src/app/site/pages/organization/pages/committees/pages/committee-detail/modules/committee-detail-view/components/committee-detail-view/committee-detail-view.component.ts
+++ b/client/src/app/site/pages/organization/pages/committees/pages/committee-detail/modules/committee-detail-view/components/committee-detail-view/committee-detail-view.component.ts
@@ -4,6 +4,7 @@ import { TranslateService } from '@ngx-translate/core';
import { Observable } from 'rxjs';
import { Id } from 'src/app/domain/definitions/key-types';
import { CML, OML } from 'src/app/domain/definitions/organization-permission';
+import { Permission } from 'src/app/domain/definitions/permission';
import { Committee } from 'src/app/domain/models/comittees/committee';
import { ViewMeeting } from 'src/app/site/pages/meetings/view-models/view-meeting';
import { OrganizationSettingsService } from 'src/app/site/pages/organization/services/organization-settings.service';
@@ -38,6 +39,14 @@ export class CommitteeDetailViewComponent extends BaseUiComponent {
return this.operator.hasCommitteePermissions(this.committeeId, CML.can_manage);
}
+ public canSeeParticipantAmount(meeting: ViewMeeting): boolean {
+ return (
+ this.operator.isOrgaManager ||
+ this.canManageCommittee ||
+ this.operator.hasPermsInMeeting(meeting.id, Permission.userCanSee)
+ );
+ }
+
public constructor(
private translate: TranslateService,
private route: ActivatedRoute,
diff --git a/client/src/app/site/pages/organization/pages/committees/pages/committee-list/components/committee-list/committee-list.component.html b/client/src/app/site/pages/organization/pages/committees/pages/committee-list/components/committee-list/committee-list.component.html
index 3d32ff7341..9c854ba547 100644
--- a/client/src/app/site/pages/organization/pages/committees/pages/committee-list/components/committee-list/committee-list.component.html
+++ b/client/src/app/site/pages/organization/pages/committees/pages/committee-list/components/committee-list/committee-list.component.html
@@ -102,27 +102,29 @@ {{ 'Committees' | translate }}
}
- @if (committee.memberAmount) {
-
-
- {{ committee.memberAmount }}
-
-
- }
- @if (committee.managerAmount) {
-
-
- {{ committee.managerAmount }}
-
-
+ @if (canSeeMemberAmounts(committee)) {
+ @if (committee.memberAmount) {
+
+
+ {{ committee.memberAmount }}
+
+
+ }
+ @if (committee.managerAmount) {
+
+
+ {{ committee.managerAmount }}
+
+
+ }
}
diff --git a/client/src/app/site/pages/organization/pages/committees/pages/committee-list/components/committee-list/committee-list.component.ts b/client/src/app/site/pages/organization/pages/committees/pages/committee-list/components/committee-list/committee-list.component.ts
index bdc18065a4..fb7e7fa8ba 100644
--- a/client/src/app/site/pages/organization/pages/committees/pages/committee-list/components/committee-list/committee-list.component.ts
+++ b/client/src/app/site/pages/organization/pages/committees/pages/committee-list/components/committee-list/committee-list.component.ts
@@ -2,6 +2,7 @@ import { Component } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { marker as _ } from '@colsen1991/ngx-translate-extract-marker';
import { TranslateService } from '@ngx-translate/core';
+import { CML } from 'src/app/domain/definitions/organization-permission';
import { Action } from 'src/app/gateways/actions';
import { BaseListViewComponent } from 'src/app/site/base/base-list-view.component';
import { SpinnerService } from 'src/app/site/modules/global-spinner';
@@ -28,6 +29,10 @@ const COMMITTEE_LIST_STORAGE_INDEX = `committee_list`;
styleUrls: [`./committee-list.component.scss`]
})
export class CommitteeListComponent extends BaseListViewComponent {
+ public canSeeMemberAmounts(committee: ViewCommittee): boolean {
+ return this.operator.isAccountAdmin || this.operator.hasCommitteePermissions(committee.id, CML.can_manage);
+ }
+
private get messageForSpinner(): string {
return this.translate.instant(`Agenda items are in process. Please wait ...`);
}
diff --git a/client/src/app/site/pages/organization/pages/orga-meetings/pages/meeting-list/components/meeting-list/meeting-list.component.html b/client/src/app/site/pages/organization/pages/orga-meetings/pages/meeting-list/components/meeting-list/meeting-list.component.html
index 36e2f5a324..f438c06cbe 100644
--- a/client/src/app/site/pages/organization/pages/orga-meetings/pages/meeting-list/components/meeting-list/meeting-list.component.html
+++ b/client/src/app/site/pages/organization/pages/orga-meetings/pages/meeting-list/components/meeting-list/meeting-list.component.html
@@ -147,7 +147,7 @@ {{ 'Meetings' | translate }}
>
}
- @if (meeting.userAmount) {
+ @if (meeting.userAmount && showParticipantAmount(meeting)) {
{
}
return this.translate.instant(`Navigate to meeting `) + meeting.name;
}
+
+ public showParticipantAmount(meeting: ViewMeeting): boolean {
+ return (
+ this.operator.hasCommitteePermissions(meeting.committee_id, CML.can_manage) ||
+ this.operator.hasPermsInMeeting(meeting.id, Permission.userCanSee)
+ );
+ }
}