diff --git a/ghost/admin/app/controllers/settings/theme/uploadtheme.js b/ghost/admin/app/controllers/settings/theme/uploadtheme.js index abbc395017..3e8889fd55 100644 --- a/ghost/admin/app/controllers/settings/theme/uploadtheme.js +++ b/ghost/admin/app/controllers/settings/theme/uploadtheme.js @@ -2,9 +2,9 @@ import Controller from '@ember/controller'; import {inject as service} from '@ember/service'; export default class UploadThemeController extends Controller { - @service config; + @service limit; get isAllowed() { - return (!this.config.get('hostSettings')?.limits?.customThemes) || !this.config.get('hostSettings').limits.customThemes.disabled; + return !this.limit.limiter.isLimited('customThemes'); } } diff --git a/ghost/admin/app/services/limit.js b/ghost/admin/app/services/limit.js index 46a9be9ed8..c6f3cf139b 100644 --- a/ghost/admin/app/services/limit.js +++ b/ghost/admin/app/services/limit.js @@ -33,28 +33,30 @@ export default class LimitsService extends Service { let limits = this.config.get('hostSettings.limits'); - if (limits && !this.limiter) { - this.limiter = new LimitService(); + this.limiter = new LimitService(); - let helpLink; - - if (this.config.get('hostSettings.billing.enabled') - && this.config.get('hostSettings.billing.enabled') === true - && this.config.get('hostSettings.billing.url')) { - helpLink = this.config.get('hostSettings.billing.url'); - } else { - helpLink = 'https://ghost.org/help/'; - } - - return this.limiter.loadLimits({ - limits: this.decorateWithCountQueries(limits), - helpLink, - errors: { - HostLimitError, - IncorrectUsageError - } - }); + if (!limits) { + return; } + + let helpLink; + + if (this.config.get('hostSettings.billing.enabled') + && this.config.get('hostSettings.billing.enabled') === true + && this.config.get('hostSettings.billing.url')) { + helpLink = this.config.get('hostSettings.billing.url'); + } else { + helpLink = 'https://ghost.org/help/'; + } + + return this.limiter.loadLimits({ + limits: this.decorateWithCountQueries(limits), + helpLink, + errors: { + HostLimitError, + IncorrectUsageError + } + }); } decorateWithCountQueries(limits) {