File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ import { canAccessPiece } from '../services/PermissionService'
2+ import { useUserStore } from '../store/user'
3+
4+ export default {
5+ mounted ( el : HTMLElement , binding : any ) {
6+ try {
7+ const userStore = useUserStore ( )
8+ const role = userStore . primaryRole
9+ const user = { role }
10+ const piece = binding . value
11+ if ( ! canAccessPiece ( piece as any , user as any ) ) {
12+ el . style . display = 'none'
13+ }
14+ } catch ( e ) {
15+ el . style . display = 'none'
16+ }
17+ }
18+ }
Original file line number Diff line number Diff line change 11<template >
22 <div >
33 <h2 >Termine</h2 >
4- <p >Kalenderintegration via CalDAV / Nextcloud (Platzhalter)</p >
4+ <div v-if =" mayAccessCalendar" >
5+ <p >Kalenderintegration via CalDAV / Nextcloud (Platzhalter)</p >
6+ <!-- Hier kommt die Calendar-Komponente / Sync-Logik -->
7+ </div >
8+ <div v-else >
9+ <p >Sie haben keine Berechtigung, den Kalender einzusehen.</p >
10+ </div >
511 </div >
612</template >
713
814<script lang="ts" setup>
9- // TODO: implement event list with CalDAV sync
15+ import { computed } from ' vue'
16+ import { useUserStore } from ' @/store/user'
17+ import { canAccessCalendar } from ' @/services/PermissionService'
18+
19+ const userStore = useUserStore ()
20+ const mayAccessCalendar = computed (() => {
21+ const role = userStore .primaryRole
22+ const user = { role }
23+ return canAccessCalendar (user as any )
24+ })
1025 </script >
1126
1227<style scoped>
You can’t perform that action at this time.
0 commit comments