diff --git a/dashboard/src/views/DomainsView.vue b/dashboard/src/views/DomainsView.vue index cc21a98c6..c7566449e 100644 --- a/dashboard/src/views/DomainsView.vue +++ b/dashboard/src/views/DomainsView.vue @@ -4,7 +4,7 @@ import { useI18n } from 'vue-i18n'; const i18n = useI18n(); const t = i18n.t; -import { ref, onMounted, useTemplateRef, computed } from 'vue'; +import { ref, onMounted, useTemplateRef, computed, inject } from 'vue'; import { Button, ButtonGroup, TableView, TextInput, InputDialog } from 'pankow'; import Certificates from '../components/Certificates.vue'; import SyncDns from '../components/SyncDns.vue'; @@ -25,8 +25,12 @@ const dashboardDomain = ref(''); const domainDialog = useTemplateRef('domainDialog'); const wellKnownDialog = useTemplateRef('wellKnownDialog'); +const features = inject('features'); +const subscriptionRequiredDialog = inject('subscriptionRequiredDialog'); + function onAdd () { - domainDialog.value.open(null); + if (features.value.domainMaxCount <= domains.value.length) subscriptionRequiredDialog.value.open(); + else domainDialog.value.open(null); } function onEdit(domain) { diff --git a/dashboard/src/views/UsersView.vue b/dashboard/src/views/UsersView.vue index 3ef7f2aee..79f0a36f5 100644 --- a/dashboard/src/views/UsersView.vue +++ b/dashboard/src/views/UsersView.vue @@ -4,7 +4,7 @@ import { useI18n } from 'vue-i18n'; const i18n = useI18n(); const t = i18n.t; -import { ref, onMounted, computed, useTemplateRef } from 'vue'; +import { ref, onMounted, computed, useTemplateRef, inject } from 'vue'; import { Button, ButtonGroup, TextInput, SingleSelect, TableView, InputDialog } from 'pankow'; import { ROLES } from '../constants.js'; import Section from '../components/Section.vue'; @@ -65,6 +65,9 @@ const groups = ref([]); const groupsById = ref({}); const roles = ref([]); +const features = inject('features'); +const subscriptionRequiredDialog = inject('subscriptionRequiredDialog'); + const inputDialog = useTemplateRef('inputDialog'); const userDialog = useTemplateRef('userDialog'); const groupDialog = useTemplateRef('groupDialog'); @@ -145,7 +148,8 @@ function onPasswordReset(user) { } function onEditOrAddUser(user = null) { - userDialog.value.open(user); + if (features.value.userMaxCount <= users.value.length) subscriptionRequiredDialog.value.open(); + else userDialog.value.open(user); } const invitationDialog = useTemplateRef('invitationDialog');