Merge pull request #22188 from overleaf/ar-convert-modules-group-settings-to-es-modules

Convert modules/group-settings to es modules

GitOrigin-RevId: 3f1768fb91148722c0f0c181ab9b5a5a9174deca
This commit is contained in:
Andrew Rumble
2024-12-18 09:05:27 +00:00
committed by Copybot
parent cfcd85929f
commit 8f9d382d89
8 changed files with 49 additions and 48 deletions
@@ -1,7 +1,7 @@
const FeaturesHelper = require('./FeaturesHelper')
const PlanLocator = require('./PlansLocator')
import FeaturesHelper from './FeaturesHelper.js'
import PlanLocator from './PlansLocator.js'
function isProfessionalPlan(planCode) {
export function isProfessionalPlan(planCode) {
const plan = PlanLocator.findLocalPlanInSettings(planCode)
// only identify "modern" professional group plans as eligible, and do not include legacy plans
return Boolean(
@@ -10,12 +10,12 @@ function isProfessionalPlan(planCode) {
)
}
function isProfessionalGroupPlan(subscription) {
export function isProfessionalGroupPlan(subscription) {
const isProfessional = isProfessionalPlan(subscription.planCode)
return subscription.groupPlan && isProfessional
}
module.exports = {
export default {
isProfessionalPlan,
isProfessionalGroupPlan,
}
@@ -1,5 +1,5 @@
import User from './helpers/User.js'
import Subscription from './helpers/Subscription.js'
import Subscription from './helpers/Subscription.mjs'
import request from './helpers/request.js'
import async from 'async'
import { expect } from 'chai'
@@ -3,7 +3,7 @@ import Settings from '@overleaf/settings'
import { expect } from 'chai'
import Features from '../../../app/src/infrastructure/Features.js'
import MockV1ApiClass from './mocks/MockV1Api.js'
import SubscriptionHelper from './helpers/Subscription.js'
import SubscriptionHelper from './helpers/Subscription.mjs'
const Subscription = SubscriptionHelper.promises
@@ -2,7 +2,7 @@ import { expect } from 'chai'
import async from 'async'
import User from './helpers/User.js'
import Institution from './helpers/Institution.mjs'
import Subscription from './helpers/Subscription.js'
import Subscription from './helpers/Subscription.mjs'
import Publisher from './helpers/Publisher.js'
describe('UserMembershipAuthorization', function () {
@@ -1,5 +1,5 @@
import { expect } from 'chai'
import MockSubscription from './Subscription.js'
import MockSubscription from './Subscription.mjs'
import SubscriptionUpdater from '../../../../app/src/Features/Subscription/SubscriptionUpdater.js'
import { Subscription as SubscriptionModel } from '../../../../app/src/models/Subscription.js'
import { DeletedSubscription as DeletedSubscriptionModel } from '../../../../app/src/models/DeletedSubscription.js'
@@ -1,9 +1,10 @@
const { ObjectId } = require('mongodb-legacy')
const Subscription = require('./Subscription')
const MockRecurlyApiClass = require('../mocks/MockRecurlyApi')
const RecurlyWrapper = require('../../../../app/src/Features/Subscription/RecurlyWrapper')
const { promisifyClass } = require('@overleaf/promise-utils')
import mongodb from 'mongodb-legacy'
import Subscription from './Subscription.mjs'
import MockRecurlyApiClass from '../mocks/MockRecurlyApi.js'
import RecurlyWrapper from '../../../../app/src/Features/Subscription/RecurlyWrapper.js'
import { promisifyClass } from '@overleaf/promise-utils'
const { ObjectId } = mongodb
let MockRecurlyApi
before(function () {
@@ -57,7 +58,8 @@ class RecurlySubscription {
}
}
module.exports = RecurlySubscription
module.exports.promises = promisifyClass(RecurlySubscription, {
export default RecurlySubscription
export const promises = promisifyClass(RecurlySubscription, {
without: ['buildCallbackXml'],
})
@@ -1,14 +1,12 @@
const { db, ObjectId } = require('../../../../app/src/infrastructure/mongodb')
const { expect } = require('chai')
const { callbackifyClass } = require('@overleaf/promise-utils')
const SubscriptionUpdater = require('../../../../app/src/Features/Subscription/SubscriptionUpdater')
const PermissionsManager = require('../../../../app/src/Features/Authorization/PermissionsManager')
const SSOConfigManager = require('../../../../modules/group-settings/app/src/sso/SSOConfigManager')
const SubscriptionModel =
require('../../../../app/src/models/Subscription').Subscription
const DeletedSubscriptionModel =
require('../../../../app/src/models/DeletedSubscription').DeletedSubscription
const Modules = require('../../../../app/src/infrastructure/Modules')
import { db, ObjectId } from '../../../../app/src/infrastructure/mongodb.js'
import { expect } from 'chai'
import { callbackifyClass } from '@overleaf/promise-utils'
import SubscriptionUpdater from '../../../../app/src/Features/Subscription/SubscriptionUpdater.js'
import PermissionsManager from '../../../../app/src/Features/Authorization/PermissionsManager.js'
import SSOConfigManager from '../../../../modules/group-settings/app/src/sso/SSOConfigManager.mjs'
import { Subscription as SubscriptionModel } from '../../../../app/src/models/Subscription.js'
import { DeletedSubscription as DeletedSubscriptionModel } from '../../../../app/src/models/DeletedSubscription.js'
import Modules from '../../../../app/src/infrastructure/Modules.js'
class PromisifiedSubscription {
constructor(options = {}) {
@@ -178,4 +176,4 @@ const Subscription = callbackifyClass(PromisifiedSubscription, {
})
Subscription.promises = class extends PromisifiedSubscription {}
module.exports = Subscription
export default Subscription
@@ -1,18 +1,19 @@
const fs = require('fs')
const Path = require('path')
const User = require('./User').promises
const Subscription = require('./Subscription').promises
const { SSOConfig } = require('../../../../app/src/models/SSOConfig')
const UserHelper = require('./UserHelper')
const SAMLHelper = require('./SAMLHelper')
const Settings = require('@overleaf/settings')
const {
getProviderId,
} = require('../../../../app/src/Features/Subscription/GroupUtils')
const UserGetter = require('../../../../app/src/Features/User/UserGetter')
const {
Subscription: SubscriptionModel,
} = require('../../../../app/src/models/Subscription')
import fs from 'fs'
import Path from 'path'
import UserModule from './User.js'
import SubscriptionHelper from './Subscription.mjs'
import { SSOConfig } from '../../../../app/src/models/SSOConfig.js'
import UserHelper from './UserHelper.js'
import SAMLHelper from './SAMLHelper.js'
import Settings from '@overleaf/settings'
import { getProviderId } from '../../../../app/src/Features/Subscription/GroupUtils.js'
import UserGetter from '../../../../app/src/Features/User/UserGetter.js'
import { fileURLToPath } from 'node:url'
import { Subscription as SubscriptionModel } from '../../../../app/src/models/Subscription.js'
const { promises: User } = UserModule
const { promises: Subscription } = SubscriptionHelper
const __dirname = fileURLToPath(new URL('.', import.meta.url))
const SAML_TEST_CERT = fs
.readFileSync(Path.resolve(__dirname, '../../files/saml-cert.crt'), 'utf8')
@@ -26,14 +27,14 @@ function getEnrollmentUrl(groupId) {
const userIdAttribute = 'nameID'
const baseSsoConfig = {
export const baseSsoConfig = {
entryPoint: 'http://example-sso.com/saml',
certificates: [SAML_TEST_CERT],
signatureAlgorithm: 'sha256',
userIdAttribute,
} // the database also sets enabled and validated, but we cannot set that in the POST request for /manage/groups/:ID/settings/sso
async function createGroupSSO() {
export async function createGroupSSO() {
const nonSSOMemberHelper = await UserHelper.createUser()
const nonSSOMember = nonSSOMemberHelper.user
@@ -91,7 +92,7 @@ async function createGroupSSO() {
}
}
async function linkGroupMember(
export async function linkGroupMember(
userEmail,
userPassword,
groupId,
@@ -165,7 +166,7 @@ async function linkGroupMember(
return userHelper
}
async function setConfigAndEnableSSO(
export async function setConfigAndEnableSSO(
subscriptionHelper,
adminEmailPassword,
config
@@ -211,7 +212,7 @@ async function setConfigAndEnableSSO(
}
}
module.exports = {
export default {
createGroupSSO,
linkGroupMember,
baseSsoConfig,