| 12345678910111213141516171819202122232425262728293031323334353637 |
- import mongoose from '../infrastructure/Mongoose.mjs'
- const { Schema } = mongoose
- export const GroupPolicySchema = new Schema(
- {
- // User can't delete their own account
- userCannotDeleteOwnAccount: Boolean,
- // User can't add a secondary email address, or affiliation
- userCannotHaveSecondaryEmail: Boolean,
- // User can't have an active (currently auto-renewing) personal subscription, nor can they start one
- userCannotHaveSubscription: Boolean,
- // User can't choose to leave the group subscription they are managed by
- userCannotLeaveManagingGroupSubscription: Boolean,
- // User can't have a Google SSO account, nor can they link it to their account
- userCannotHaveGoogleSSO: Boolean,
- // User can't have other third-party SSO (e.g. ORCID/IEEE) active on their account, nor can they link it to their account
- userCannotHaveOtherThirdPartySSO: Boolean,
- // User can't use any of our AI features, such as the compile-assistant
- userCannotUseAIFeatures: Boolean,
- // User can't use the chat feature
- userCannotUseChat: Boolean,
- // User can't use the Dropbox feature
- userCannotUseDropbox: Boolean,
- },
- { minimize: false }
- )
- export const GroupPolicy = mongoose.model('GroupPolicy', GroupPolicySchema)
|