Extract isCloud information from admin storage
This commit is contained in:
parent
8c71b1fc19
commit
327a8299f2
|
@ -4,7 +4,7 @@ import { auth, admin } from "stores/portal"
|
||||||
import { Constants } from "@budibase/frontend-core"
|
import { Constants } from "@budibase/frontend-core"
|
||||||
import { StripeStatus } from "components/portal/licensing/constants"
|
import { StripeStatus } from "components/portal/licensing/constants"
|
||||||
import { TENANT_FEATURE_FLAGS, isEnabled } from "helpers/featureFlags"
|
import { TENANT_FEATURE_FLAGS, isEnabled } from "helpers/featureFlags"
|
||||||
import { Hosting, PlanModel } from "@budibase/types"
|
import { PlanModel } from "@budibase/types"
|
||||||
|
|
||||||
const UNLIMITED = -1
|
const UNLIMITED = -1
|
||||||
|
|
||||||
|
@ -60,6 +60,15 @@ export const createLicensingStore = () => {
|
||||||
return userCount > userLimit
|
return userCount > userLimit
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async function isCloud() {
|
||||||
|
let adminStore = get(admin)
|
||||||
|
if (!adminStore.loaded) {
|
||||||
|
await admin.init()
|
||||||
|
adminStore = get(admin)
|
||||||
|
}
|
||||||
|
return adminStore.cloud
|
||||||
|
}
|
||||||
|
|
||||||
const actions = {
|
const actions = {
|
||||||
init: async () => {
|
init: async () => {
|
||||||
actions.setNavigation()
|
actions.setNavigation()
|
||||||
|
@ -132,7 +141,7 @@ export const createLicensingStore = () => {
|
||||||
quotaUsage,
|
quotaUsage,
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
actions.setUsageMetrics()
|
await actions.setUsageMetrics()
|
||||||
},
|
},
|
||||||
usersLimitReached: userCount => {
|
usersLimitReached: userCount => {
|
||||||
return usersLimitReached(userCount, get(store).userLimit)
|
return usersLimitReached(userCount, get(store).userLimit)
|
||||||
|
@ -140,7 +149,7 @@ export const createLicensingStore = () => {
|
||||||
usersLimitExceeded(userCount) {
|
usersLimitExceeded(userCount) {
|
||||||
return usersLimitExceeded(userCount, get(store).userLimit)
|
return usersLimitExceeded(userCount, get(store).userLimit)
|
||||||
},
|
},
|
||||||
setUsageMetrics: () => {
|
setUsageMetrics: async () => {
|
||||||
if (isEnabled(TENANT_FEATURE_FLAGS.LICENSING)) {
|
if (isEnabled(TENANT_FEATURE_FLAGS.LICENSING)) {
|
||||||
const usage = get(store).quotaUsage
|
const usage = get(store).quotaUsage
|
||||||
const license = get(auth).user.license
|
const license = get(auth).user.license
|
||||||
|
@ -204,9 +213,9 @@ export const createLicensingStore = () => {
|
||||||
const userCount = usage.usageQuota.users
|
const userCount = usage.usageQuota.users
|
||||||
const userLimitReached = usersLimitReached(userCount, userLimit)
|
const userLimitReached = usersLimitReached(userCount, userLimit)
|
||||||
const userLimitExceeded = usersLimitExceeded(userCount, userLimit)
|
const userLimitExceeded = usersLimitExceeded(userCount, userLimit)
|
||||||
const errUserLimit = license.account.hosting === Hosting.CLOUD &&
|
const isCloudAccount = await isCloud()
|
||||||
|
const errUserLimit = isCloudAccount &&
|
||||||
license.plan.model === PlanModel.PER_USER &&
|
license.plan.model === PlanModel.PER_USER &&
|
||||||
userQuota.usage.static.users.value !== UNLIMITED &&
|
|
||||||
userLimitExceeded
|
userLimitExceeded
|
||||||
|
|
||||||
store.update(state => {
|
store.update(state => {
|
||||||
|
|
Loading…
Reference in New Issue