Is there a way to disable the `hide my public profile and presence features` profile setting?

I’ve got a community that does not want users to hide their profile or online presence. I don’t see a site setting to disable this. Is there a way to hide the checkbox on the user profile with CSS? It doesn’t seem to have a thingy that identifies just that field.

7 Likes

Even if it doesn’t, you can target it using numeric offsets in the CSS, conceptually "hide the third thing in this <div>" or whatever.

The only risk is that if the list later changes size, your offset will be incorrect.

6 Likes

This should work so long as it stays the last item on that list:

.user-preferences .control-group.other .controls:last-of-type {
  display: none;
}

Beyond that, you can also remove it altogether by modifying the template. All you need is to use this:

<script type="text/x-handlebars" data-template-name="preferences/interface">

</script>

and copy / paste the contents of this file in there after removing line #43

If you modify the template and it’s updated in core, you need to update your template as well.

6 Likes

Thanks for the instructions, but we feel it’s quite a clumsy solution. Especially for those who are using common branches: the fixes can essentially break anytime. Any chance of having a proper CSS target for hiding the setting? Or even better, an admin setting to disallow the feature?

3 Likes

Agreed, can we make sure there is a proper css target here in the markup @awesomerobot?

3 Likes

A few sections in user preferences were missing classes, so I’ve added them here

https://github.com/discourse/discourse/commit/9a3dd6b59af0a5fc22045f376b421cb4fd074aad

You’ll be able to simplify to

.pref-hide-profile {
  display: none;
}
12 Likes

Is this possible on hosted communities?

It is, if you go to admin > customize > themes you’ll be able to add the CSS above to your theme to hide the setting.

4 Likes

Is it possible to run a query using Data Explorer to see which users have this setting enabled, in other words, users who have hidden their public profile?

you’ll want something like:

SELECT user_id from user_options where hide_profile_and_presence = true

5 Likes

Just a small update on this one. There is now the allow users to hide profile admin setting you can use to achieve this:

2 Likes