diff --git a/services/web/app/src/Features/Subscription/SubscriptionLocator.js b/services/web/app/src/Features/Subscription/SubscriptionLocator.js index ee64085d0f..a980399c29 100644 --- a/services/web/app/src/Features/Subscription/SubscriptionLocator.js +++ b/services/web/app/src/Features/Subscription/SubscriptionLocator.js @@ -2,6 +2,10 @@ const { callbackifyAll } = require('@overleaf/promise-utils') const { Subscription } = require('../../models/Subscription') const { DeletedSubscription } = require('../../models/DeletedSubscription') const logger = require('@overleaf/logger') +const { + AI_ADD_ON_CODE, + isStandaloneAiAddOnPlanCode, +} = require('./RecurlyEntities') require('./GroupPlansData') // make sure dynamic group plans are loaded const SubscriptionLocator = { @@ -114,6 +118,15 @@ const SubscriptionLocator = { }).exec() }, + async hasAiAssist(userOrId) { + const userId = SubscriptionLocator._getUserId(userOrId) + const subscription = await Subscription.findOne({ admin_id: userId }).exec() + return Boolean( + isStandaloneAiAddOnPlanCode(subscription?.planCode) || + subscription?.addOns?.some(addOn => addOn.code === AI_ADD_ON_CODE) + ) + }, + _getUserId(userOrId) { if (userOrId && userOrId._id) { return userOrId._id