On my forum, members are allowed to change their own name and username. But when they do, it is logged as a Staff Action so there’s a lot of clutter among actual staff actions of my moderators. In the following screenshot, the “B” user is a new member and changed his username himself, but this is logged in the staff action log. Around half of the log entries are self-username-changes, and half are actual staff actions. I do want to log when an admin/moderator changes someone else’s username or name, so perhaps this event should check if user making the change != user changed
before logging.
That’s expected from my perspective – name changes should be rare, and users can rename themselves to avoid scrutiny which is kind of dangerous.
There is a reason that Discourse, by default, only allows (self-initiated) name changes on new users for 3 days after user creation…
Unfortunately reverting this setting to the 3-day default wouldn’t significantly affect the number of username-changes on my forum, because in fact most of the members changing their username do it instantly after registering. This is because registrations are done outside of Discourse, and the Discourse forum uses SSO to log in. If someone registers with an email address bobjoe@gmail.com
, their username defaults to bobjoe
, so new members usually change it to something else they prefer instead.
I guess I’ll just deal with all the “username change” spam on the Staff Action log. I reported this as a bug because a self-username-change is not an action done by a staff member, so in a literal sense it’s miscategorized. However, I can see how purposely miscategorizing it can potentially benefit other forum owners, although it’s a bit confusing. (I initially had the question “Which one of my staff members keeps changing everyone’s usernames??”)
It sounds like the solution is to fix your SSO flow and ask the user for their preferred name before provisioning them on Discourse?
I don’t know how to do that, and if I asked a question about it, it would be off-topic in this thread.