The communications platform that puts data protection first.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
Rocket.Chat/ee/server/settings/saml.ts

113 lines
4.1 KiB

import { settings } from '../../../app/settings/server';
import {
defaultAuthnContextTemplate,
defaultAuthRequestTemplate,
defaultLogoutResponseTemplate,
defaultLogoutRequestTemplate,
defaultNameIDTemplate,
defaultIdentifierFormat,
defaultAuthnContext,
defaultMetadataTemplate,
defaultMetadataCertificateTemplate,
} from '../../../app/meteor-accounts-saml/server/lib/constants';
export const addSettings = function(name: string): void {
settings.addGroup('SAML', function() {
this.set({
tab: 'SAML_Enterprise',
enterprise: true,
modules: ['saml-enterprise'],
}, function() {
this.section('SAML_Section_4_Roles', function() {
// Roles Settings
this.add(`SAML_Custom_${ name }_role_attribute_sync`, false, {
type: 'boolean',
i18nLabel: 'SAML_Role_Attribute_Sync',
i18nDescription: 'SAML_Role_Attribute_Sync_Description',
invalidValue: false,
});
this.add(`SAML_Custom_${ name }_role_attribute_name`, '', {
type: 'string',
i18nLabel: 'SAML_Role_Attribute_Name',
i18nDescription: 'SAML_Role_Attribute_Name_Description',
invalidValue: '',
});
});
this.section('SAML_Section_6_Advanced', function() {
this.add(`SAML_Custom_${ name }_identifier_format`, defaultIdentifierFormat, {
type: 'string',
invalidValue: defaultIdentifierFormat,
i18nLabel: 'SAML_Identifier_Format',
i18nDescription: 'SAML_Identifier_Format_Description',
});
this.add(`SAML_Custom_${ name }_NameId_template`, defaultNameIDTemplate, {
type: 'string',
invalidValue: defaultNameIDTemplate,
i18nLabel: 'SAML_NameIdPolicy_Template',
i18nDescription: 'SAML_NameIdPolicy_Template_Description',
multiline: true,
});
this.add(`SAML_Custom_${ name }_custom_authn_context`, defaultAuthnContext, {
type: 'string',
invalidValue: defaultAuthnContext,
i18nLabel: 'SAML_Custom_Authn_Context',
i18nDescription: 'SAML_Custom_Authn_Context_description',
});
this.add(`SAML_Custom_${ name }_authn_context_comparison`, 'exact', {
type: 'select',
values: [
{ key: 'better', i18nLabel: 'Better' },
{ key: 'exact', i18nLabel: 'Exact' },
{ key: 'maximum', i18nLabel: 'Maximum' },
{ key: 'minimum', i18nLabel: 'Minimum' },
],
invalidValue: 'exact',
i18nLabel: 'SAML_Custom_Authn_Context_Comparison',
});
this.add(`SAML_Custom_${ name }_AuthnContext_template`, defaultAuthnContextTemplate, {
type: 'string',
invalidValue: defaultAuthnContextTemplate,
i18nLabel: 'SAML_AuthnContext_Template',
i18nDescription: 'SAML_AuthnContext_Template_Description',
multiline: true,
});
this.add(`SAML_Custom_${ name }_AuthRequest_template`, defaultAuthRequestTemplate, {
type: 'string',
invalidValue: defaultAuthRequestTemplate,
i18nLabel: 'SAML_AuthnRequest_Template',
i18nDescription: 'SAML_AuthnRequest_Template_Description',
multiline: true,
});
this.add(`SAML_Custom_${ name }_LogoutResponse_template`, defaultLogoutResponseTemplate, {
type: 'string',
invalidValue: defaultLogoutResponseTemplate,
i18nLabel: 'SAML_LogoutResponse_Template',
i18nDescription: 'SAML_LogoutResponse_Template_Description',
multiline: true,
});
this.add(`SAML_Custom_${ name }_LogoutRequest_template`, defaultLogoutRequestTemplate, {
type: 'string',
invalidValue: defaultLogoutRequestTemplate,
i18nLabel: 'SAML_LogoutRequest_Template',
i18nDescription: 'SAML_LogoutRequest_Template_Description',
multiline: true,
});
this.add(`SAML_Custom_${ name }_MetadataCertificate_template`, defaultMetadataCertificateTemplate, {
type: 'string',
invalidValue: defaultMetadataCertificateTemplate,
i18nLabel: 'SAML_MetadataCertificate_Template',
i18nDescription: 'SAML_Metadata_Certificate_Template_Description',
multiline: true,
});
this.add(`SAML_Custom_${ name }_Metadata_template`, defaultMetadataTemplate, {
type: 'string',
invalidValue: defaultMetadataTemplate,
i18nLabel: 'SAML_Metadata_Template',
i18nDescription: 'SAML_Metadata_Template_Description',
multiline: true,
});
});
});
});
};