diff --git a/app/assets/javascripts/discourse/app/controllers/preferences/interface.js b/app/assets/javascripts/discourse/app/controllers/preferences/interface.js index ee21845a44f..ea9b5a430ac 100644 --- a/app/assets/javascripts/discourse/app/controllers/preferences/interface.js +++ b/app/assets/javascripts/discourse/app/controllers/preferences/interface.js @@ -72,7 +72,6 @@ export default class InterfaceController extends Controller { "allow_private_messages", "enable_allowed_pm_users", "homepage_id", - "hide_profile", "hide_presence", "text_size", "title_count_mode", diff --git a/app/assets/javascripts/discourse/app/controllers/preferences/profile.js b/app/assets/javascripts/discourse/app/controllers/preferences/profile.js index 9086effc549..81385d3b7a7 100644 --- a/app/assets/javascripts/discourse/app/controllers/preferences/profile.js +++ b/app/assets/javascripts/discourse/app/controllers/preferences/profile.js @@ -33,6 +33,7 @@ export default class ProfileController extends Controller { "date_of_birth", "timezone", "default_calendar", + "hide_profile", ]; calendarOptions = [ diff --git a/app/assets/javascripts/discourse/app/templates/preferences/interface.hbs b/app/assets/javascripts/discourse/app/templates/preferences/interface.hbs index e29cf069fb9..6317a9cf6b9 100644 --- a/app/assets/javascripts/discourse/app/templates/preferences/interface.hbs +++ b/app/assets/javascripts/discourse/app/templates/preferences/interface.hbs @@ -197,14 +197,6 @@ class="pref-auto-unpin" /> {{/if}} - {{#if this.siteSettings.allow_users_to_hide_profile}} - - {{/if}} + + + {{/if}} + {{#if this.canChangeBio}}
diff --git a/app/assets/javascripts/discourse/tests/acceptance/user-preferences-profile-test.js b/app/assets/javascripts/discourse/tests/acceptance/user-preferences-profile-test.js index 59712a93399..354bb0b5f34 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/user-preferences-profile-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/user-preferences-profile-test.js @@ -4,6 +4,38 @@ import { cloneJSON } from "discourse/lib/object"; import userFixtures from "discourse/tests/fixtures/user-fixtures"; import { acceptance } from "discourse/tests/helpers/qunit-helpers"; +acceptance( + "User - Preferences - Profile - Hide Profile Allowed", + function (needs) { + needs.user(); + needs.settings({ allow_users_to_hide_profile: true }); + + test("user can hide profile", async function (assert) { + await visit("/my/preferences/profile"); + + assert + .dom(".pref-hide-profile") + .exists("checkbox to hide profile is shown"); + }); + } +); + +acceptance( + "User - Preferences - Profile - Hide Profile Not Allowed", + function (needs) { + needs.user(); + needs.settings({ allow_users_to_hide_profile: false }); + + test("user can hide profile", async function (assert) { + await visit("/my/preferences/profile"); + + assert + .dom(".pref-hide-profile") + .doesNotExist("checkbox to hide profile is hidden"); + }); + } +); + acceptance("User - Preferences - Profile - Featured topic", function (needs) { needs.user(); diff --git a/spec/system/page_objects/pages/user_preferences_profile.rb b/spec/system/page_objects/pages/user_preferences_profile.rb index 7703d6b3d7a..498bf061c63 100644 --- a/spec/system/page_objects/pages/user_preferences_profile.rb +++ b/spec/system/page_objects/pages/user_preferences_profile.rb @@ -8,6 +8,14 @@ module PageObjects self end + def hide_profile + find(".user-hide-profile .pref-hide-profile").click + end + + def has_hidden_profile? + has_css?(".user-hide-profile .pref-hide-profile input[type=checkbox]:checked") + end + def expand_profile_details find(".user-main .details .controls .btn-default").click end diff --git a/spec/system/user_page/user_preferences_profile_spec.rb b/spec/system/user_page/user_preferences_profile_spec.rb index de9f73ceaee..035b9a6dc29 100644 --- a/spec/system/user_page/user_preferences_profile_spec.rb +++ b/spec/system/user_page/user_preferences_profile_spec.rb @@ -19,6 +19,19 @@ describe "User preferences | Profile", type: :system do end end + describe "hiding profile" do + it "allows user to hide their profile" do + SiteSetting.allow_users_to_hide_profile = true + + user_preferences_profile_page.visit(user) + user_preferences_profile_page.hide_profile + user_preferences_profile_page.save + page.refresh + + expect(user_preferences_profile_page).to have_hidden_profile + end + end + describe "enforcing required fields" do before do UserRequiredFieldsVersion.create!