Skip to content

Commit 47c61d1

Browse files
authored
Hide meeting minutes to guests (#9009)
Signed-off-by: Anton Alexeyev <[email protected]>
1 parent f914027 commit 47c61d1

File tree

2 files changed

+48
-32
lines changed

2 files changed

+48
-32
lines changed

plugins/love-resources/src/components/Floor.svelte

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,13 +39,21 @@
3939
4040
let editable: boolean = false
4141
$: editable = hasAccountRole(me, AccountRole.Maintainer)
42+
let canViewMinutes: boolean = false
43+
$: canViewMinutes = hasAccountRole(me, AccountRole.User)
4244
</script>
4345

4446
<div class="hulyComponent">
4547
<Header adaptive={'disabled'}>
4648
<Breadcrumb title={selectedFloor?.name ?? ''} size={'large'} isCurrent />
4749
<svelte:fragment slot="beforeTitle">
48-
<ViewletSelector bind:viewlet bind:preference bind:loading viewletQuery={{ attachTo: lovePlg.class.Floor }} />
50+
<ViewletSelector
51+
bind:viewlet
52+
bind:preference
53+
bind:loading
54+
hidden={!canViewMinutes}
55+
viewletQuery={{ attachTo: lovePlg.class.Floor }}
56+
/>
4957
</svelte:fragment>
5058
<svelte:fragment slot="actions">
5159
{#if editable}

plugins/love-resources/src/components/MeetingMinutesSection.svelte

Lines changed: 39 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
-->
1515
<script lang="ts">
1616
import type { Class, Doc, Ref, Space } from '@hcengineering/core'
17+
import { AccountRole, getCurrentAccount, hasAccountRole } from '@hcengineering/core'
1718
import { Label, Section, Scroller } from '@hcengineering/ui'
1819
import { Table, ViewletsSettingButton } from '@hcengineering/view-resources'
1920
import { Viewlet, ViewletPreference } from '@hcengineering/view'
@@ -26,40 +27,47 @@
2627
export let readonly: boolean = false
2728
export let meetings: number
2829
30+
const me = getCurrentAccount()
31+
2932
let viewlet: Viewlet | undefined
3033
let preference: ViewletPreference | undefined
3134
let loading = true
35+
36+
let canViewMinutes: boolean = false
37+
$: canViewMinutes = hasAccountRole(me, AccountRole.User)
3238
</script>
3339

34-
<Section label={love.string.MeetingMinutes} icon={love.icon.Cam}>
35-
<svelte:fragment slot="header">
36-
<ViewletsSettingButton
37-
viewletQuery={{ _id: love.viewlet.TableMeetingMinutesEmbedded }}
38-
kind={'tertiary'}
39-
bind:viewlet
40-
bind:loading
41-
bind:preference
42-
/>
43-
</svelte:fragment>
40+
{#if canViewMinutes}
41+
<Section label={love.string.MeetingMinutes} icon={love.icon.Cam}>
42+
<svelte:fragment slot="header">
43+
<ViewletsSettingButton
44+
viewletQuery={{ _id: love.viewlet.TableMeetingMinutesEmbedded }}
45+
kind={'tertiary'}
46+
bind:viewlet
47+
bind:loading
48+
bind:preference
49+
/>
50+
</svelte:fragment>
4451

45-
<svelte:fragment slot="content">
46-
{#if meetings > 0 && viewlet}
47-
<Scroller horizontal>
48-
<Table
49-
_class={love.class.MeetingMinutes}
50-
config={preference?.config ?? viewlet.config}
51-
query={{ attachedTo: objectId }}
52-
loadingProps={{ length: meetings }}
53-
prefferedSorting="createdOn"
54-
{readonly}
55-
/>
56-
</Scroller>
57-
{:else}
58-
<div class="antiSection-empty solid flex-col mt-3">
59-
<span class="content-dark-color">
60-
<Label label={love.string.NoMeetingMinutes} />
61-
</span>
62-
</div>
63-
{/if}
64-
</svelte:fragment>
65-
</Section>
52+
<svelte:fragment slot="content">
53+
{#if meetings > 0 && viewlet}
54+
<Scroller horizontal>
55+
<Table
56+
_class={love.class.MeetingMinutes}
57+
config={preference?.config ?? viewlet.config}
58+
query={{ attachedTo: objectId }}
59+
loadingProps={{ length: meetings }}
60+
prefferedSorting="createdOn"
61+
{readonly}
62+
/>
63+
</Scroller>
64+
{:else}
65+
<div class="antiSection-empty solid flex-col mt-3">
66+
<span class="content-dark-color">
67+
<Label label={love.string.NoMeetingMinutes} />
68+
</span>
69+
</div>
70+
{/if}
71+
</svelte:fragment>
72+
</Section>
73+
{/if}

0 commit comments

Comments
 (0)