diff --git a/app/assets/javascripts/discourse/app/components/activation-controls.js b/app/assets/javascripts/discourse/app/components/activation-controls.js index 15d48468b08..99ed8d2b1ba 100644 --- a/app/assets/javascripts/discourse/app/components/activation-controls.js +++ b/app/assets/javascripts/discourse/app/components/activation-controls.js @@ -1,4 +1,10 @@ import Component from "@ember/component"; +import { or } from "@ember/object/computed"; + export default Component.extend({ classNames: "activation-controls", + canEditEmail: or( + "siteSettings.enable_local_logins", + "siteSettings.email_editable" + ), }); diff --git a/app/assets/javascripts/discourse/app/templates/components/activation-controls.hbs b/app/assets/javascripts/discourse/app/templates/components/activation-controls.hbs index a311180f53c..454aa331031 100644 --- a/app/assets/javascripts/discourse/app/templates/components/activation-controls.hbs +++ b/app/assets/javascripts/discourse/app/templates/components/activation-controls.hbs @@ -5,7 +5,9 @@ class="btn-primary resend"}} {{/unless}} -{{d-button action=editActivationEmail - label="login.change_email" - icon="pencil-alt" - class="edit-email"}} +{{#if canEditEmail}} + {{d-button action=editActivationEmail + label="login.change_email" + icon="pencil-alt" + class="edit-email"}} +{{/if}} diff --git a/app/assets/javascripts/discourse/tests/integration/components/activation-controls-test.js b/app/assets/javascripts/discourse/tests/integration/components/activation-controls-test.js new file mode 100644 index 00000000000..d44c3981582 --- /dev/null +++ b/app/assets/javascripts/discourse/tests/integration/components/activation-controls-test.js @@ -0,0 +1,25 @@ +import componentTest, { + setupRenderingTest, +} from "discourse/tests/helpers/component-test"; +import { + discourseModule, + queryAll, +} from "discourse/tests/helpers/qunit-helpers"; + +discourseModule("Integration | Component | activation-controls", function ( + hooks +) { + setupRenderingTest(hooks); + + componentTest("hides change email button", { + template: `{{activation-controls}}`, + beforeEach() { + this.siteSettings.enable_local_logins = false; + this.siteSettings.email_editable = false; + }, + + test(assert) { + assert.equal(queryAll("button.edit-email").length, 0); + }, + }); +}); diff --git a/config/site_settings.yml b/config/site_settings.yml index d32b2ebc49d..6834aed5bb8 100644 --- a/config/site_settings.yml +++ b/config/site_settings.yml @@ -541,7 +541,9 @@ users: max: 10 block_common_passwords: true username_change_period: 3 - email_editable: true + email_editable: + client: true + default: true logout_redirect: client: true default: ""