Merge pull request #36024 from overleaf/rh-cio-group-support

Enable customer.io in-app messages on group management pages

GitOrigin-RevId: 0c30c4ccf219cdbc4dd48ea6940cc46a4c6964c3
This commit is contained in:
roo hutton
2026-09-17 11:50:54 +00:00
committed by Copybot
parent c628d82f07
commit 1681343782
3 changed files with 13 additions and 6 deletions
@@ -74,6 +74,7 @@ async function manageGroupMembers(req, res, next) {
canUseFlexibleLicensing: plan?.canUseFlexibleLicensing,
canUseAddSeatsFeature,
entityAccess: UserMembershipAuthorization.hasEntityAccess()(req),
customerIoEnabled: true,
})
}
@@ -82,7 +83,8 @@ async function manageGroupManagers(req, res, next) {
req,
res,
next,
'user_membership/group-managers-react'
'user_membership/group-managers-react',
{ customerIoEnabled: true }
)
}
@@ -104,7 +106,7 @@ async function managePublisherManagers(req, res, next) {
)
}
async function _renderManagersPage(req, res, next, template) {
async function _renderManagersPage(req, res, next, template, extraLocals = {}) {
const { entity, entityConfig } = req
const fetchV1Data = new Promise((resolve, reject) => {
@@ -135,6 +137,7 @@ async function _renderManagersPage(req, res, next, template) {
users,
groupId: entityPrimaryKey,
entityAccess: UserMembershipAuthorization.hasEntityAccess()(req),
...extraLocals,
})
}
@@ -202,6 +205,7 @@ async function manageGroupUsers(req, res) {
entityAccess: UserMembershipAuthorization.hasEntityAccess()(req),
canUseAddSeatsFeature,
groupSSOActive: ssoConfig?.enabled,
customerIoEnabled: true,
})
}
+1 -1
View File
@@ -1,5 +1,5 @@
if(customerIoEnabled && ExposedSettings.cioWriteKey && ExposedSettings.cioSiteId)
script(type="text/javascript", id="cio-loader", nonce=scriptNonce, data-cio-write-key=ExposedSettings.cioWriteKey, data-cio-site-id=ExposedSettings.cioSiteId, data-session-analytics-id=getSessionAnalyticsId(), data-user-id=((user && (user._id || user.id)) || ''), data-user-email=((user && user.email) || '')).
script(type="text/javascript", id="cio-loader", nonce=scriptNonce, data-cio-write-key=ExposedSettings.cioWriteKey, data-cio-site-id=ExposedSettings.cioSiteId, data-session-analytics-id=getSessionAnalyticsId(), data-user-id=((user && (user._id || user.id)) || getLoggedInUserId() || ''), data-user-email=((user && user.email) || getUserEmail() || '')).
var cioSettings = document.querySelector('#cio-loader').dataset;
var analyticsId = cioSettings.sessionAnalyticsId;
var userId = cioSettings.userId;
@@ -285,7 +285,7 @@ describe('UserMembershipController', () => {
subscription,
users,
}) => {
expect.assertions(4)
expect.assertions(5)
subscription.managedUsersEnabled = false
await UserMembershipController.manageGroupMembers(req, {
render: (viewPath, viewParams) => {
@@ -293,6 +293,7 @@ describe('UserMembershipController', () => {
expect(viewParams.users).to.deep.equal(users)
expect(viewParams.groupSize).to.equal(subscription.membersLimit)
expect(viewParams.managedUsersActive).to.equal(false)
expect(viewParams.customerIoEnabled).to.equal(true)
},
})
})
@@ -432,13 +433,14 @@ describe('UserMembershipController', () => {
req,
user,
}) => {
expect.assertions(2)
expect.assertions(3)
req.user = user
req.entityConfig = EntityConfigs.groupManagers
await UserMembershipController.manageGroupManagers(req, {
render: (viewPath, viewParams) => {
expect(viewPath).to.equal('user_membership/group-managers-react')
expect(viewParams.groupSize).to.equal(undefined)
expect(viewParams.customerIoEnabled).to.equal(true)
},
})
})
@@ -449,7 +451,7 @@ describe('UserMembershipController', () => {
user,
institution,
}) => {
expect.assertions(3)
expect.assertions(4)
req.user = user
req.entity = institution
req.entityConfig = EntityConfigs.institution
@@ -460,6 +462,7 @@ describe('UserMembershipController', () => {
)
expect(viewParams.name).to.equal('Test Institution Name')
expect(viewParams.groupSize).to.equal(undefined)
expect(viewParams.customerIoEnabled).to.equal(undefined)
},
})
})