Disabled various buttons when the user doesn't have edit permission

This commit is contained in:
Thaum Rystra
2020-05-21 12:47:02 +02:00
parent 47aad6d186
commit 13a0d66433
10 changed files with 303 additions and 189 deletions

View File

@@ -48,17 +48,13 @@
//TODO add a "no character found" screen if shown on a false address
// or on a character the user does not have permission to view
import Creatures from '/imports/api/creature/Creatures.js';
import removeCreature from '/imports/api/creature/removeCreature.js';
import isDarkColor from '/imports/ui/utility/isDarkColor.js';
import { mapMutations } from 'vuex';
import { theme } from '/imports/ui/theme.js';
import StatsTab from '/imports/ui/creature/character/characterSheetTabs/StatsTab.vue';
import FeaturesTab from '/imports/ui/creature/character/characterSheetTabs/FeaturesTab.vue';
import InventoryTab from '/imports/ui/creature/character/characterSheetTabs/InventoryTab.vue';
import SpellsTab from '/imports/ui/creature/character/characterSheetTabs/SpellsTab.vue';
import PersonaTab from '/imports/ui/creature/character/characterSheetTabs/PersonaTab.vue';
import TreeTab from '/imports/ui/creature/character/characterSheetTabs/TreeTab.vue';
import { recomputeCreature } from '/imports/api/creature/computation/recomputeCreature.js';
import { assertEditPermission } from '/imports/api/creature/creaturePermissions.js';
export default {
components: {
@@ -81,7 +77,7 @@
},
reactiveProvide: {
name: 'context',
include: ['creature'],
include: ['creature', 'editPermission'],
},
onMounted(){
this.$store.commit('setPageTitle', this.creature && this.creature.name || 'Character Sheet');
@@ -100,6 +96,14 @@
creature(){
return Creatures.findOne(this.creatureId) || {};
},
editPermission(){
try {
assertEditPermission(this.creature, Meteor.userId());
return true;
} catch (e) {
return false;
}
},
},
}
</script>

View File

@@ -5,6 +5,7 @@
<toolbar-card color="">
<v-spacer slot="toolbar" />
<v-switch
v-if="context.editPermission !== false"
slot="toolbar"
v-model="organize"
label="Organize"
@@ -53,6 +54,9 @@ export default {
ContainerCard,
ToolbarCard,
},
inject: {
context: { default: {} }
},
props: {
creatureId: String,
},

View File

@@ -5,6 +5,7 @@
<v-card>
<v-card-text>
<v-switch
v-if="context.editPermission !== false"
v-model="organize"
label="Organize"
class="justify-end"
@@ -48,6 +49,9 @@ export default {
CreaturePropertiesTree,
SpellListCard,
},
inject: {
context: { default: {} }
},
props: {
creatureId: {
type: String,

View File

@@ -21,6 +21,7 @@
>
<v-spacer />
<v-switch
v-if="context.editPermission !== false"
v-model="organize"
label="Organize"
class="mx-3"
@@ -153,6 +154,9 @@
PropertyIcon,
LabeledFab,
},
inject: {
context: { default: {} }
},
props: {
creatureId: {
type: String,