From d04687af22172a6f915abd5c1999a19aae73e091 Mon Sep 17 00:00:00 2001 From: "cursor[bot]" <206951365+cursor[bot]@users.noreply.github.com> Date: Mon, 10 Aug 2026 12:00:10 +0300 Subject: [PATCH 1/3] Fix flaky TestNewSyncsMarkdownMaxLenWithMaxPostSize (#37830) Automatic Merge --- server/channels/app/platform/service_test.go | 8 ++++++-- server/public/shared/markdown/markdown_test.go | 4 +++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/server/channels/app/platform/service_test.go b/server/channels/app/platform/service_test.go index 0f627a79fc5b..1be0924a970e 100644 --- a/server/channels/app/platform/service_test.go +++ b/server/channels/app/platform/service_test.go @@ -255,6 +255,10 @@ func TestNewSyncsMarkdownMaxLenWithMaxPostSize(t *testing.T) { mainHelper.Parallel(t) th := Setup(t) - maxPostSize := th.Service.MaxPostSize() - assert.Equal(t, 4*maxPostSize, markdown.MaxLen()) + // markdown.SetMaxPostRunes is package-global; parallel tests (including + // markdown's own tests) can overwrite it between Setup and this check. + require.Eventually(t, func() bool { + maxPostSize := th.Service.MaxPostSize() + return markdown.MaxLen() == 4*maxPostSize + }, 5*time.Second, 10*time.Millisecond) } diff --git a/server/public/shared/markdown/markdown_test.go b/server/public/shared/markdown/markdown_test.go index dbdb29f631e9..4b5d63276e6b 100644 --- a/server/public/shared/markdown/markdown_test.go +++ b/server/public/shared/markdown/markdown_test.go @@ -20,9 +20,9 @@ func TestParse(t *testing.T) { }) t.Run("SetMaxPostSize raises the cap so a previously rejected input is parsed", func(t *testing.T) { + SetMaxPostRunes(defaultMaxPostRunes) defer SetMaxPostRunes(defaultMaxPostRunes) - SetMaxPostRunes(defaultMaxPostRunes) markdown := strings.Repeat("a", MaxLen()+1) document, _ := Parse(markdown) @@ -32,6 +32,8 @@ func TestParse(t *testing.T) { document, _ = Parse(markdown) assert.NotEmpty(t, document.Children) + + SetMaxPostRunes(defaultMaxPostRunes) }) t.Run("nesting depth is bounded regardless of how deeply a single line nests", func(t *testing.T) { From e02021193ae75278cc6fb79140746b0fcafa0b1a Mon Sep 17 00:00:00 2001 From: "cursor[bot]" <206951365+cursor[bot]@users.noreply.github.com> Date: Mon, 10 Aug 2026 10:26:01 -0300 Subject: [PATCH 2/3] [MM-70141] Remove dead experimental SAML login button color settings (#37857) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * [MM-70141] Remove dead SAML login button color settings SamlSettings.LoginButtonColor / LoginButtonBorderColor / LoginButtonTextColor were never consumed by any client (web or mobile) — the values reached the client config but were never applied to the SAML login button, which renders with fixed themed CSS. Remove the settings from the server model, client config payload, Admin Console Experimental Features, webapp config types, config fixtures, and documentation. The SAML login button label (LoginButtonText) is retained. Co-authored-by: mattermost-code * [MM-70141] Update admin console index test after SAML color removal Searching for "saml" no longer matches Experimental Features once the unused SAML login button color settings are removed from that section. Co-authored-by: mattermost-code * Address PR feedback: remove unnecessary SAML color removal test case Per reviewer feedback, drop the GenerateClientConfig test case that asserted the removed SAML login button color props are absent. There is no value in perpetually testing that a deleted feature stays deleted. * chore: retrigger CI after transient Actions outage Previous Server CI / API / Web App CI failures on 0f03c475 were GitHub Actions infrastructure errors (Failed to resolve action download info / Service Unavailable), not related to this PR's changes. Co-authored-by: mattermost-code --------- Co-authored-by: Cursor Agent Co-authored-by: mattermost-code --- .../experimental-configuration-settings.mdx | 45 ------------------- .../support/api/cloud_default_config.json | 5 +-- .../support/api/on_prem_default_config.json | 5 +-- .../lib/src/server/default_config.ts | 3 -- .../docker/keycloak/saml.mmsettings.json | 5 +-- server/config/client.go | 6 --- server/public/model/config.go | 16 ------- server/tests/test-config.json | 5 +-- .../admin_console/admin_definition.tsx | 27 ----------- webapp/channels/src/i18n/en.json | 6 --- .../src/utils/admin_console_index.test.tsx | 2 - webapp/platform/types/src/config.ts | 6 --- 12 files changed, 4 insertions(+), 127 deletions(-) diff --git a/docs/main/administration-guide/configure/experimental-configuration-settings.mdx b/docs/main/administration-guide/configure/experimental-configuration-settings.mdx index cea1c2811e0d..5c0dd10eba54 100644 --- a/docs/main/administration-guide/configure/experimental-configuration-settings.mdx +++ b/docs/main/administration-guide/configure/experimental-configuration-settings.mdx @@ -484,51 +484,6 @@ If the team URL of the primary team is `https://example.mattermost.com/myteam/`, -### SAML login button color - -Specify the color of the SAML login button for white labeling purposes. Use a hex code with a \#-sign before the code. This setting only applies to the mobile app. - - --- - - - - - -
This feature's config.json setting is "LoginButtonColor": "" with string input.
- -### SAML login button border color - -Specify the color of the SAML login button border for white labeling purposes. Use a hex code with a \#-sign before the code. This setting only applies to the mobile app. - - --- - - - - - -
This feature's config.json setting is "LoginButtonBorderColor": "" with string input.
- -### SAML login button text color - -Specify the color of the SAML login button text for white labeling purposes. Use a hex code with a \#-sign before the code. This setting only applies to the mobile app. - - --- - - - - - -
This feature's config.json setting is "LoginButtonTextColor": "" with string input.
- ### Use channel name in email notifications **True**: Channel and team name appears in email notification subject lines. Useful for servers using only one team. diff --git a/e2e-tests/cypress/tests/support/api/cloud_default_config.json b/e2e-tests/cypress/tests/support/api/cloud_default_config.json index 6085054e1f13..c4663c4a4c70 100644 --- a/e2e-tests/cypress/tests/support/api/cloud_default_config.json +++ b/e2e-tests/cypress/tests/support/api/cloud_default_config.json @@ -341,10 +341,7 @@ "NicknameAttribute": "", "LocaleAttribute": "", "PositionAttribute": "", - "LoginButtonText": "SAML", - "LoginButtonColor": "#34a28b", - "LoginButtonBorderColor": "#2389D7", - "LoginButtonTextColor": "#ffffff" + "LoginButtonText": "SAML" }, "NativeAppSettings": { "AppCustomURLSchemes": [ diff --git a/e2e-tests/cypress/tests/support/api/on_prem_default_config.json b/e2e-tests/cypress/tests/support/api/on_prem_default_config.json index cc35d91479f8..86c50f145f54 100644 --- a/e2e-tests/cypress/tests/support/api/on_prem_default_config.json +++ b/e2e-tests/cypress/tests/support/api/on_prem_default_config.json @@ -431,10 +431,7 @@ "NicknameAttribute": "", "LocaleAttribute": "", "PositionAttribute": "", - "LoginButtonText": "SAML", - "LoginButtonColor": "#34a28b", - "LoginButtonBorderColor": "#2389D7", - "LoginButtonTextColor": "#ffffff" + "LoginButtonText": "SAML" }, "NativeAppSettings": { "AppCustomURLSchemes": [ diff --git a/e2e-tests/playwright/lib/src/server/default_config.ts b/e2e-tests/playwright/lib/src/server/default_config.ts index a5ac6215422b..024b22fd3094 100644 --- a/e2e-tests/playwright/lib/src/server/default_config.ts +++ b/e2e-tests/playwright/lib/src/server/default_config.ts @@ -590,9 +590,6 @@ const defaultServerConfig: AdminConfig = { LocaleAttribute: '', PositionAttribute: '', LoginButtonText: 'SAML', - LoginButtonColor: '#34a28b', - LoginButtonBorderColor: '#2389D7', - LoginButtonTextColor: '#ffffff', }, NativeAppSettings: { AppCustomURLSchemes: ['mmauth://', 'mmauthbeta://'], diff --git a/server/build/docker/keycloak/saml.mmsettings.json b/server/build/docker/keycloak/saml.mmsettings.json index 0b8905b51645..ab7b70e51fbe 100644 --- a/server/build/docker/keycloak/saml.mmsettings.json +++ b/server/build/docker/keycloak/saml.mmsettings.json @@ -30,9 +30,6 @@ "NicknameAttribute": "", "LocaleAttribute": "", "PositionAttribute": "", - "LoginButtonText": "SAML", - "LoginButtonColor": "#34a28b", - "LoginButtonBorderColor": "#2389D7", - "LoginButtonTextColor": "#ffffff" + "LoginButtonText": "SAML" } } diff --git a/server/config/client.go b/server/config/client.go index 19e9892b4169..b9a6544d0b48 100644 --- a/server/config/client.go +++ b/server/config/client.go @@ -374,9 +374,6 @@ func GenerateLimitedClientConfig(c *model.Config, telemetryID string, license *m props["LdapLoginButtonTextColor"] = "" props["EnableSaml"] = "false" props["SamlLoginButtonText"] = "" - props["SamlLoginButtonColor"] = "" - props["SamlLoginButtonBorderColor"] = "" - props["SamlLoginButtonTextColor"] = "" props["EnableSignUpWithGoogle"] = "false" props["EnableSignUpWithOffice365"] = "false" props["EnableSignUpWithOpenId"] = "false" @@ -405,9 +402,6 @@ func GenerateLimitedClientConfig(c *model.Config, telemetryID string, license *m if *license.Features.SAML { props["EnableSaml"] = strconv.FormatBool(*c.SamlSettings.Enable) props["SamlLoginButtonText"] = *c.SamlSettings.LoginButtonText - props["SamlLoginButtonColor"] = *c.SamlSettings.LoginButtonColor - props["SamlLoginButtonBorderColor"] = *c.SamlSettings.LoginButtonBorderColor - props["SamlLoginButtonTextColor"] = *c.SamlSettings.LoginButtonTextColor } if *license.Features.CustomTermsOfService { diff --git a/server/public/model/config.go b/server/public/model/config.go index 65bb723927a0..cb3ceda554c3 100644 --- a/server/public/model/config.go +++ b/server/public/model/config.go @@ -3043,10 +3043,6 @@ type SamlSettings struct { PositionAttribute *string `access:"authentication_saml"` LoginButtonText *string `access:"authentication_saml"` - - LoginButtonColor *string `access:"experimental_features"` - LoginButtonBorderColor *string `access:"experimental_features"` - LoginButtonTextColor *string `access:"experimental_features"` } func (s *SamlSettings) SetDefaults() { @@ -3175,18 +3171,6 @@ func (s *SamlSettings) SetDefaults() { if s.LocaleAttribute == nil { s.LocaleAttribute = new(SamlSettingsDefaultLocaleAttribute) } - - if s.LoginButtonColor == nil { - s.LoginButtonColor = new("#34a28b") - } - - if s.LoginButtonBorderColor == nil { - s.LoginButtonBorderColor = new("#2389D7") - } - - if s.LoginButtonTextColor == nil { - s.LoginButtonTextColor = new("#ffffff") - } } type NativeAppSettings struct { diff --git a/server/tests/test-config.json b/server/tests/test-config.json index 8d50d3a4e383..0747130a91b1 100644 --- a/server/tests/test-config.json +++ b/server/tests/test-config.json @@ -291,10 +291,7 @@ "NicknameAttribute": "", "LocaleAttribute": "", "PositionAttribute": "", - "LoginButtonText": "With SAML", - "LoginButtonColor": "", - "LoginButtonBorderColor": "", - "LoginButtonTextColor": "" + "LoginButtonText": "With SAML" }, "NativeAppSettings": { "AppDownloadLink": "https://mattermost.com/download/", diff --git a/webapp/channels/src/components/admin_console/admin_definition.tsx b/webapp/channels/src/components/admin_console/admin_definition.tsx index 0d19bf376494..5bdd597eee96 100644 --- a/webapp/channels/src/components/admin_console/admin_definition.tsx +++ b/webapp/channels/src/components/admin_console/admin_definition.tsx @@ -6723,33 +6723,6 @@ const AdminDefinition: AdminDefinitionType = { placeholder: defineMessage({id: 'admin.experimental.experimentalPrimaryTeam.example', defaultMessage: 'E.g.: "teamname"'}), isDisabled: it.not(it.userHasWritePermissionOnResource(RESOURCE_KEYS.EXPERIMENTAL.FEATURES)), }, - { - type: 'color', - key: 'SamlSettings.LoginButtonColor', - label: defineMessage({id: 'admin.experimental.samlSettingsLoginButtonColor.title', defaultMessage: 'SAML Login Button Color:'}), - help_text: defineMessage({id: 'admin.experimental.samlSettingsLoginButtonColor.desc', defaultMessage: 'Specify the color of the SAML login button for white labeling purposes. Use a hex code with a #-sign before the code. This setting only applies to the mobile apps.'}), - help_text_markdown: false, - isHidden: it.not(it.licensedForFeature('SAML')), - isDisabled: it.not(it.userHasWritePermissionOnResource(RESOURCE_KEYS.EXPERIMENTAL.FEATURES)), - }, - { - type: 'color', - key: 'SamlSettings.LoginButtonBorderColor', - label: defineMessage({id: 'admin.experimental.samlSettingsLoginButtonBorderColor.title', defaultMessage: 'SAML Login Button Border Color:'}), - help_text: defineMessage({id: 'admin.experimental.samlSettingsLoginButtonBorderColor.desc', defaultMessage: 'Specify the color of the SAML login button border for white labeling purposes. Use a hex code with a #-sign before the code. This setting only applies to the mobile apps.'}), - help_text_markdown: false, - isHidden: it.not(it.licensedForFeature('SAML')), - isDisabled: it.not(it.userHasWritePermissionOnResource(RESOURCE_KEYS.EXPERIMENTAL.FEATURES)), - }, - { - type: 'color', - key: 'SamlSettings.LoginButtonTextColor', - label: defineMessage({id: 'admin.experimental.samlSettingsLoginButtonTextColor.title', defaultMessage: 'SAML Login Button Text Color:'}), - help_text: defineMessage({id: 'admin.experimental.samlSettingsLoginButtonTextColor.desc', defaultMessage: 'Specify the color of the SAML login button text for white labeling purposes. Use a hex code with a #-sign before the code. This setting only applies to the mobile apps.'}), - help_text_markdown: false, - isHidden: it.not(it.licensedForFeature('SAML')), - isDisabled: it.not(it.userHasWritePermissionOnResource(RESOURCE_KEYS.EXPERIMENTAL.FEATURES)), - }, { type: 'bool', key: 'EmailSettings.UseChannelInEmailNotifications', diff --git a/webapp/channels/src/i18n/en.json b/webapp/channels/src/i18n/en.json index 2020b5940195..e7feb5adff75 100644 --- a/webapp/channels/src/i18n/en.json +++ b/webapp/channels/src/i18n/en.json @@ -1362,12 +1362,6 @@ "admin.experimental.moveThreadToAnotherTeamEnable.title": "Enable Moving Threads To Different Teams", "admin.experimental.PermittedMoveThreadRoles.desc": "Choose who is allowed to move threads to other channels based on roles. (Other permissions below still apply).", "admin.experimental.PermittedMoveThreadRoles.title": "Permitted Roles", - "admin.experimental.samlSettingsLoginButtonBorderColor.desc": "Specify the color of the SAML login button border for white labeling purposes. Use a hex code with a #-sign before the code. This setting only applies to the mobile apps.", - "admin.experimental.samlSettingsLoginButtonBorderColor.title": "SAML Login Button Border Color:", - "admin.experimental.samlSettingsLoginButtonColor.desc": "Specify the color of the SAML login button for white labeling purposes. Use a hex code with a #-sign before the code. This setting only applies to the mobile apps.", - "admin.experimental.samlSettingsLoginButtonColor.title": "SAML Login Button Color:", - "admin.experimental.samlSettingsLoginButtonTextColor.desc": "Specify the color of the SAML login button text for white labeling purposes. Use a hex code with a #-sign before the code. This setting only applies to the mobile apps.", - "admin.experimental.samlSettingsLoginButtonTextColor.title": "SAML Login Button Text Color:", "admin.experimental.threadAutoFollow.desc": "This setting must be enabled in order to enable Threaded Discussions. When enabled, threads a user starts, participates in, or is mentioned in are automatically followed. A new `Threads` table is added in the database that tracks threads and thread participants, and a `ThreadMembership` table tracks followed threads for each user and the read or unread state of each followed thread. When false, all backend operations to support Threaded Discussions are disabled.", "admin.experimental.threadAutoFollow.title": "Automatically Follow Threads", "admin.experimental.timeBetweenUserTypingUpdatesMilliseconds.desc": "The number of milliseconds to wait between emitting user typing websocket events.", diff --git a/webapp/channels/src/utils/admin_console_index.test.tsx b/webapp/channels/src/utils/admin_console_index.test.tsx index 3c83b111f778..c3f92857fb47 100644 --- a/webapp/channels/src/utils/admin_console_index.test.tsx +++ b/webapp/channels/src/utils/admin_console_index.test.tsx @@ -31,7 +31,6 @@ describe('AdminConsoleIndex.generateIndex', () => { 'environment/session_lengths', 'environment/mobile_security', 'authentication/email', - 'experimental/features', ]); expect(idx.search('nginx')).toEqual([ 'environment/rate_limiting', @@ -61,7 +60,6 @@ describe('AdminConsoleIndex.generateIndex', () => { 'authentication/saml', 'environment/session_lengths', 'authentication/email', - 'experimental/features', ].sort()); expect(idx.search('nginx')).toEqual([ 'environment/rate_limiting', diff --git a/webapp/platform/types/src/config.ts b/webapp/platform/types/src/config.ts index a0cc5476e950..131bd8fa4d34 100644 --- a/webapp/platform/types/src/config.ts +++ b/webapp/platform/types/src/config.ts @@ -192,10 +192,7 @@ export type ClientConfig = { RunJobs: string; SamlFirstNameAttributeSet: string; SamlLastNameAttributeSet: string; - SamlLoginButtonBorderColor: string; - SamlLoginButtonColor: string; SamlLoginButtonText: string; - SamlLoginButtonTextColor: string; SamlNicknameAttributeSet: string; SamlPositionAttributeSet: string; SchemaVersion: string; @@ -844,9 +841,6 @@ export type SamlSettings = { LocaleAttribute: string; PositionAttribute: string; LoginButtonText: string; - LoginButtonColor: string; - LoginButtonBorderColor: string; - LoginButtonTextColor: string; }; export type NativeAppSettings = { From 6242bc3e2f4433d322e2f1a1087ed280ed9a5fb2 Mon Sep 17 00:00:00 2001 From: "cursor[bot]" <206951365+cursor[bot]@users.noreply.github.com> Date: Mon, 10 Aug 2026 10:26:19 -0300 Subject: [PATCH 3/3] [MM-70140] Remove experimental AD/LDAP login button color settings (#37855) * [MM-70140] Remove experimental AD/LDAP login button color settings Remove the dead-code LdapSettings.LoginButtonColor / LoginButtonBorderColor / LoginButtonTextColor experimental settings. These values were plumbed into the client config but never consumed by the web or mobile clients, so no AD/LDAP login button was ever rendered or colored. Removes the fields from the server config struct and defaults, the client config payload, the Admin Console Experimental Features section, the webapp config type, related en.json strings, API definitions, docs, and test/default config fixtures. Co-authored-by: mattermost-code * [MM-70140] Add test guarding removal of LDAP login button color keys Assert that GenerateLimitedClientConfig still emits LdapLoginFieldName under an LDAP license but never emits the removed LdapLoginButtonColor/BorderColor/ TextColor keys, guarding against reintroduction of the dead settings. Co-authored-by: mattermost-code * [MM-70140] Remove LDAP login button colors from webapp LdapSettings type Keep AdminConfig LdapSettings in sync with the server model after the experimental AD/LDAP login button color settings were removed. Co-authored-by: mattermost-code * [MM-70140] Update admin console index test after LDAP color removal Drop experimental/features from the ldap search expectation now that the AD/LDAP login button color settings are no longer under Experimental. Co-authored-by: mattermost-code * Address PR feedback: remove test for removed LDAP login button color settings Per @lieut-data's review, drop TestGenerateLimitedClientConfigOmitsLdapLoginButtonColors; there's no need to perpetually test that a removed feature stays removed. * chore: retrigger CI after GitHub Actions service outage Co-authored-by: mattermost-code * chore: retrigger CI after Actions service recovery Co-authored-by: mattermost-code --------- Co-authored-by: Cursor Agent Co-authored-by: mattermost-code Co-authored-by: mattermost-build --- api/v4/source/definitions.yaml | 6 --- .../experimental-configuration-settings.mdx | 51 ++----------------- .../support/api/cloud_default_config.json | 5 +- .../support/api/on_prem_default_config.json | 5 +- .../lib/src/server/default_config.ts | 3 -- .../docker/keycloak/ldap.mmsettings.json | 3 -- server/config/client.go | 6 --- server/public/model/config.go | 16 ------ server/tests/test-config.json | 5 +- .../admin_console/admin_definition.tsx | 27 ---------- webapp/channels/src/i18n/en.json | 6 --- .../src/utils/admin_console_index.test.tsx | 2 - webapp/platform/types/src/config.ts | 6 --- 13 files changed, 6 insertions(+), 135 deletions(-) diff --git a/api/v4/source/definitions.yaml b/api/v4/source/definitions.yaml index c074ee4e7e83..b8c1ed2a0ea1 100644 --- a/api/v4/source/definitions.yaml +++ b/api/v4/source/definitions.yaml @@ -1660,12 +1660,6 @@ components: type: integer LoginFieldName: type: string - LoginButtonColor: - type: string - LoginButtonBorderColor: - type: string - LoginButtonTextColor: - type: string LdapDiagnosticResult: type: object properties: diff --git a/docs/main/administration-guide/configure/experimental-configuration-settings.mdx b/docs/main/administration-guide/configure/experimental-configuration-settings.mdx index 5c0dd10eba54..7a92c5ec81e5 100644 --- a/docs/main/administration-guide/configure/experimental-configuration-settings.mdx +++ b/docs/main/administration-guide/configure/experimental-configuration-settings.mdx @@ -13,10 +13,10 @@ Review and manage the following [experimental](/administration-guide/manage/feat -System admins managing a self-hosted Mattermost deployment can edit the `config.json` file as described in the following tables. Each configuration value below includes a JSON path to access the value programmatically in the `config.json` file using a JSON-aware tool. For example, one `LoginButtonColor` value is under `LdapSettings`. +System admins managing a self-hosted Mattermost deployment can edit the `config.json` file as described in the following tables. Each configuration value below includes a JSON path to access the value programmatically in the `config.json` file using a JSON-aware tool. For example, one `LoginButtonColor` value is under `EmailSettings`. -- If using a tool such as [jq](https://stedolan.github.io/jq/), you'd enter: `cat config/config.json | jq '.LdapSettings.LoginButtonColor'` -- When working with the `config.json` file manually, look for an object such as `LdapSettings`, then within that object, find the key `LoginButtonColor`. +- If using a tool such as [jq](https://stedolan.github.io/jq/), you'd enter: `cat config/config.json | jq '.EmailSettings.LoginButtonColor'` +- When working with the `config.json` file manually, look for an object such as `EmailSettings`, then within that object, find the key `LoginButtonColor`. @@ -24,51 +24,6 @@ System admins managing a self-hosted Mattermost deployment can edit the `config. ## Experimental System Console configuration settings -### AD/LDAP login button color - -Specify the color of the AD/LDAP login button for white labeling purposes. Use a hex code with a \#-sign before the code. This setting only applies to the mobile app. - - --- - - - - - -
This feature's config.json setting is "LoginButtonColor": "" with string input.
- -### AD/LDAP login button border color - -Specify the color of the AD/LDAP login button border for white labeling purposes. Use a hex code with a \#-sign before the code. This setting only applies to the mobile app. - - --- - - - - - -
This feature's config.json setting is "LoginButtonBorderColor": "" with string input.
- -### AD/LDAP login button text color - -Specify the color of the AD/LDAP login button text for white labeling purposes. Use a hex code with a \#-sign before the code. This setting only applies to the mobile app. - - --- - - - - - -
This feature's config.json setting is "LoginButtonTextColor": "" with string input.
- ### Change authentication method **True**: Users can change their sign-in method to any that is enabled on the server, either via their Profile or the APIs. diff --git a/e2e-tests/cypress/tests/support/api/cloud_default_config.json b/e2e-tests/cypress/tests/support/api/cloud_default_config.json index c4663c4a4c70..1489c96cbd19 100644 --- a/e2e-tests/cypress/tests/support/api/cloud_default_config.json +++ b/e2e-tests/cypress/tests/support/api/cloud_default_config.json @@ -294,10 +294,7 @@ "QueryTimeout": 60, "AnalyticsQueryTimeout": 300, "MaxPageSize": 500, - "LoginFieldName": "", - "LoginButtonColor": "#0000", - "LoginButtonBorderColor": "#2389D7", - "LoginButtonTextColor": "#2389D7" + "LoginFieldName": "" }, "ComplianceSettings": { "Enable": false, diff --git a/e2e-tests/cypress/tests/support/api/on_prem_default_config.json b/e2e-tests/cypress/tests/support/api/on_prem_default_config.json index 86c50f145f54..6a46c1383b4a 100644 --- a/e2e-tests/cypress/tests/support/api/on_prem_default_config.json +++ b/e2e-tests/cypress/tests/support/api/on_prem_default_config.json @@ -384,10 +384,7 @@ "PrivateKeyFile": "", "QueryTimeout": 60, "MaxPageSize": 500, - "LoginFieldName": "", - "LoginButtonColor": "#0000", - "LoginButtonBorderColor": "#2389D7", - "LoginButtonTextColor": "#2389D7" + "LoginFieldName": "" }, "ComplianceSettings": { "Enable": false, diff --git a/e2e-tests/playwright/lib/src/server/default_config.ts b/e2e-tests/playwright/lib/src/server/default_config.ts index 024b22fd3094..d1c3f64b0e32 100644 --- a/e2e-tests/playwright/lib/src/server/default_config.ts +++ b/e2e-tests/playwright/lib/src/server/default_config.ts @@ -542,9 +542,6 @@ const defaultServerConfig: AdminConfig = { QueryTimeout: 60, MaxPageSize: 0, LoginFieldName: '', - LoginButtonColor: '#0000', - LoginButtonBorderColor: '#2389D7', - LoginButtonTextColor: '#2389D7', }, ComplianceSettings: { Enable: false, diff --git a/server/build/docker/keycloak/ldap.mmsettings.json b/server/build/docker/keycloak/ldap.mmsettings.json index 0aabaa4848ec..b635749de531 100644 --- a/server/build/docker/keycloak/ldap.mmsettings.json +++ b/server/build/docker/keycloak/ldap.mmsettings.json @@ -31,9 +31,6 @@ "QueryTimeout": 60, "MaxPageSize": 0, "LoginFieldName": "", - "LoginButtonColor": "#0000", - "LoginButtonBorderColor": "#2389D7", - "LoginButtonTextColor": "#2389D7", "Trace": false } } diff --git a/server/config/client.go b/server/config/client.go index b9a6544d0b48..d6226644da84 100644 --- a/server/config/client.go +++ b/server/config/client.go @@ -369,9 +369,6 @@ func GenerateLimitedClientConfig(c *model.Config, telemetryID string, license *m props["CustomDescriptionText"] = "" props["EnableLdap"] = "false" props["LdapLoginFieldName"] = "" - props["LdapLoginButtonColor"] = "" - props["LdapLoginButtonBorderColor"] = "" - props["LdapLoginButtonTextColor"] = "" props["EnableSaml"] = "false" props["SamlLoginButtonText"] = "" props["EnableSignUpWithGoogle"] = "false" @@ -394,9 +391,6 @@ func GenerateLimitedClientConfig(c *model.Config, telemetryID string, license *m if *license.Features.LDAP { props["EnableLdap"] = strconv.FormatBool(*c.LdapSettings.Enable) props["LdapLoginFieldName"] = *c.LdapSettings.LoginFieldName - props["LdapLoginButtonColor"] = *c.LdapSettings.LoginButtonColor - props["LdapLoginButtonBorderColor"] = *c.LdapSettings.LoginButtonBorderColor - props["LdapLoginButtonTextColor"] = *c.LdapSettings.LoginButtonTextColor } if *license.Features.SAML { diff --git a/server/public/model/config.go b/server/public/model/config.go index cb3ceda554c3..7eb27e479bf0 100644 --- a/server/public/model/config.go +++ b/server/public/model/config.go @@ -2724,10 +2724,6 @@ type LdapSettings struct { // Customization LoginFieldName *string `access:"authentication_ldap"` - - LoginButtonColor *string `access:"experimental_features"` - LoginButtonBorderColor *string `access:"experimental_features"` - LoginButtonTextColor *string `access:"experimental_features"` } func (s *LdapSettings) SetDefaults() { @@ -2865,18 +2861,6 @@ func (s *LdapSettings) SetDefaults() { if s.LoginFieldName == nil { s.LoginFieldName = new(LdapSettingsDefaultLoginFieldName) } - - if s.LoginButtonColor == nil { - s.LoginButtonColor = new("#0000") - } - - if s.LoginButtonBorderColor == nil { - s.LoginButtonBorderColor = new("#2389D7") - } - - if s.LoginButtonTextColor == nil { - s.LoginButtonTextColor = new("#2389D7") - } } type ComplianceSettings struct { diff --git a/server/tests/test-config.json b/server/tests/test-config.json index 0747130a91b1..a566a781efb7 100644 --- a/server/tests/test-config.json +++ b/server/tests/test-config.json @@ -255,10 +255,7 @@ "SkipCertificateVerification": false, "QueryTimeout": 60, "MaxPageSize": 0, - "LoginFieldName": "", - "LoginButtonColor": "", - "LoginButtonBorderColor": "", - "LoginButtonTextColor": "" + "LoginFieldName": "" }, "ComplianceSettings": { "Enable": false, diff --git a/webapp/channels/src/components/admin_console/admin_definition.tsx b/webapp/channels/src/components/admin_console/admin_definition.tsx index 5bdd597eee96..183322814341 100644 --- a/webapp/channels/src/components/admin_console/admin_definition.tsx +++ b/webapp/channels/src/components/admin_console/admin_definition.tsx @@ -6468,33 +6468,6 @@ const AdminDefinition: AdminDefinitionType = { id: 'ExperimentalSettings', name: defineMessage({id: 'admin.experimental.experimentalFeatures', defaultMessage: 'Experimental Features'}), settings: [ - { - type: 'color', - key: 'LdapSettings.LoginButtonColor', - label: defineMessage({id: 'admin.experimental.ldapSettingsLoginButtonColor.title', defaultMessage: 'AD/LDAP Login Button Color:'}), - help_text: defineMessage({id: 'admin.experimental.ldapSettingsLoginButtonColor.desc', defaultMessage: 'Specify the color of the AD/LDAP login button for white labeling purposes. Use a hex code with a #-sign before the code. This setting only applies to the mobile apps.'}), - help_text_markdown: false, - isHidden: it.not(it.licensedForFeature('LDAP')), - isDisabled: it.not(it.userHasWritePermissionOnResource(RESOURCE_KEYS.EXPERIMENTAL.FEATURES)), - }, - { - type: 'color', - key: 'LdapSettings.LoginButtonBorderColor', - label: defineMessage({id: 'admin.experimental.ldapSettingsLoginButtonBorderColor.title', defaultMessage: 'AD/LDAP Login Button Border Color:'}), - help_text: defineMessage({id: 'admin.experimental.ldapSettingsLoginButtonBorderColor.desc', defaultMessage: 'Specify the color of the AD/LDAP login button border for white labeling purposes. Use a hex code with a #-sign before the code. This setting only applies to the mobile apps.'}), - help_text_markdown: false, - isHidden: it.not(it.licensedForFeature('LDAP')), - isDisabled: it.not(it.userHasWritePermissionOnResource(RESOURCE_KEYS.EXPERIMENTAL.FEATURES)), - }, - { - type: 'color', - key: 'LdapSettings.LoginButtonTextColor', - label: defineMessage({id: 'admin.experimental.ldapSettingsLoginButtonTextColor.title', defaultMessage: 'AD/LDAP Login Button Text Color:'}), - help_text: defineMessage({id: 'admin.experimental.ldapSettingsLoginButtonTextColor.desc', defaultMessage: 'Specify the color of the AD/LDAP login button text for white labeling purposes. Use a hex code with a #-sign before the code. This setting only applies to the mobile apps.'}), - help_text_markdown: false, - isHidden: it.not(it.licensedForFeature('LDAP')), - isDisabled: it.not(it.userHasWritePermissionOnResource(RESOURCE_KEYS.EXPERIMENTAL.FEATURES)), - }, { type: 'bool', key: 'ServiceSettings.ExperimentalEnableAuthenticationTransfer', diff --git a/webapp/channels/src/i18n/en.json b/webapp/channels/src/i18n/en.json index e7feb5adff75..51b44f898c18 100644 --- a/webapp/channels/src/i18n/en.json +++ b/webapp/channels/src/i18n/en.json @@ -1341,12 +1341,6 @@ "admin.experimental.experimentalPrimaryTeam.desc": "The primary team of which users on the server are members. When a primary team is set, the options to join other teams or leave the primary team are disabled.", "admin.experimental.experimentalPrimaryTeam.example": "E.g.: \"teamname\"", "admin.experimental.experimentalPrimaryTeam.title": "Primary Team:", - "admin.experimental.ldapSettingsLoginButtonBorderColor.desc": "Specify the color of the AD/LDAP login button border for white labeling purposes. Use a hex code with a #-sign before the code. This setting only applies to the mobile apps.", - "admin.experimental.ldapSettingsLoginButtonBorderColor.title": "AD/LDAP Login Button Border Color:", - "admin.experimental.ldapSettingsLoginButtonColor.desc": "Specify the color of the AD/LDAP login button for white labeling purposes. Use a hex code with a #-sign before the code. This setting only applies to the mobile apps.", - "admin.experimental.ldapSettingsLoginButtonColor.title": "AD/LDAP Login Button Color:", - "admin.experimental.ldapSettingsLoginButtonTextColor.desc": "Specify the color of the AD/LDAP login button text for white labeling purposes. Use a hex code with a #-sign before the code. This setting only applies to the mobile apps.", - "admin.experimental.ldapSettingsLoginButtonTextColor.title": "AD/LDAP Login Button Text Color:", "admin.experimental.linkMetadataTimeoutMilliseconds.desc": "The number of milliseconds to wait for metadata from a third-party link. Used with Post Metadata.", "admin.experimental.linkMetadataTimeoutMilliseconds.example": "E.g.: \"5000\"", "admin.experimental.linkMetadataTimeoutMilliseconds.title": "Link Metadata Timeout:", diff --git a/webapp/channels/src/utils/admin_console_index.test.tsx b/webapp/channels/src/utils/admin_console_index.test.tsx index c3f92857fb47..2928f05b8b10 100644 --- a/webapp/channels/src/utils/admin_console_index.test.tsx +++ b/webapp/channels/src/utils/admin_console_index.test.tsx @@ -21,7 +21,6 @@ describe('AdminConsoleIndex.generateIndex', () => { 'environment/session_lengths', 'authentication/mfa', 'authentication/saml', - 'experimental/features', 'authentication/email', 'authentication/ldap', 'authentication/guest_access', @@ -51,7 +50,6 @@ describe('AdminConsoleIndex.generateIndex', () => { 'authentication/mfa', 'authentication/ldap', 'authentication/saml', - 'experimental/features', 'authentication/email', 'environment/session_lengths', 'authentication/guest_access', diff --git a/webapp/platform/types/src/config.ts b/webapp/platform/types/src/config.ts index 131bd8fa4d34..aba07cc07553 100644 --- a/webapp/platform/types/src/config.ts +++ b/webapp/platform/types/src/config.ts @@ -155,9 +155,6 @@ export type ClientConfig = { IsDefaultMarketplace: string; LdapFirstNameAttributeSet: string; LdapLastNameAttributeSet: string; - LdapLoginButtonBorderColor: string; - LdapLoginButtonColor: string; - LdapLoginButtonTextColor: string; LdapLoginFieldName: string; LdapNicknameAttributeSet: string; LdapPositionAttributeSet: string; @@ -773,9 +770,6 @@ export type LdapSettings = { QueryTimeout: number; MaxPageSize: number; LoginFieldName: string; - LoginButtonColor: string; - LoginButtonBorderColor: string; - LoginButtonTextColor: string; MaximumLoginAttempts: number; };