Add mixin to check access rights client-side.

This replaces the Vuex getters approach (writeaccess, adminaccess)
which, as access rights are no longer global but dependent on each
project's settings, are no longer appropriate.
This commit is contained in:
D. Berge
2025-07-12 11:16:38 +02:00
parent 10580ea3ec
commit d21cde20fc

View File

@@ -0,0 +1,31 @@
import { mapGetters } from 'vuex';
import access from '@/lib/organisations/access';
export default {
name: "AccessMixin",
computed: {
...mapGetters(['user', 'projectConfiguration'])
},
methods: {
access (operation, item) {
if (!item) item = this.projectConfiguration;
return access(this.user?.organisations ?? {}, item?.organisations ?? {}, operation);
},
readaccess (item) {
return this.access('read', item);
},
writeaccess (item) {
return this.access('write', item);
},
adminaccess (item) {
return this.access('edit', item);
}
}
}