Disable bio, location and profile picture

AI-generated summary

The discussion revolves around disabling bio, location, and profile picture options on a Discourse site for confidentiality purposes. Iris29 initially sought help with this issue, and pfaffman suggested using the “hide user profiles from public” site setting, but this only hides profiles from non-logged-in users.

Iris29 then clarified this point, and pfaffman agreed that hiding these options with CSS might be the best solution. awesomerobot provided CSS code to disable avatar uploads, bios, and locations. They also noted that a savvy user could undo this CSS in their browser inspector.

Additionally, awesomerobot provided the CSS code to hide the website field. They also shared a guide on how to make CSS changes on a Discourse site: https://meta.discourse.org/t/how-to-make-css-changes-on-your-site/168101.

I’ve been unsuccessfully searching in the settings how to disable the bio, the location and the profile pic options.
We don’t want people to be able to put a picture of their own as a profile picture, to say where they are located or to be able to put customized info in their bio (for confidentiality purposes).
Is this something that can be done?
Can someone help me with this?

Thanks a lot!

Hide it all with CSS.

Also, there is a hide user profiles from public site setting.

@pfaffman actually, this option only hides the profiles from someone who isn’t logged in, but the profiles are still visible for logged in users.

True! I was confusing it with the user setting to hide their profile.

I think that hiding all of that with CSS (both the ability to enter the information as well as see it) would probably be Good Enough, but a plugin that sets the Hide my public profile and presence features for all users wouldn’t be too hard if you can install arbitrary plugins

Avatar uploads can be disabled with the site setting allow uploaded avatars

I don’t believe we have a way to disable bios, so CSS could do it:

#user-card .bio, // user card
.user-main .bio, // profile page
.control-group.pref-bio  { // user preference
  display: none;
}

No setting for location either, so also use CSS here:

#user-card .location, // user card
.user-main .user-profile-location, // profile page
.control-group.pref-location {  // user preference
  display: none;
}

A savvy user could undo that CSS in their browser inspector to add the data, but I’m not sure why they’d go through that effort!

Thanks very much @awesomerobot!
This is very helpful!

Would you also happen to have the code to hide the website field by any chance?

oh sure, so instead of this:

#user-card .location, // user card
.user-main .user-profile-location, // profile page
.control-group.pref-location {  // user preference
  display: none;
}

you would do

#user-card .location-and-website, // user card
.user-main .location-and-website, // profile page
.control-group.pref-location,  // user preferences
.control-group.pref-website { 
  display: none;
}

We have more info about how to make CSS changes like this in a guide here: Making custom CSS changes on your site

Thank you so much! This is very appreciated!
Thanks also for the guide.