Creating a topic or a post sends the user_updated webhook

If a User Event webhook is activated, creating a topic or a post sends the user_updated webhook. Tested on the latest Discourse.

3 Likes

Well I guess we are assuming that something like “last posted at” just changed and pushing that across.

3 Likes

That is a very odd interpretation of the meaning, I would expect only a user preference was updated. Possibly by the user only.

1 Like

I’d also expect a webhook when badge & group memberships are changed.

1 Like

This is how it used to work.

This would be very useful.

1 Like

Hmm this is a regression then – who touched webhooks last @tgxworld?

1 Like

Not me, Rails 5 touched it :stuck_out_tongue:

I’ll have a look

5 Likes

A user webhook is also being sent when a user logs in or out. Creating a user through SSO is sending 3 user webhooks. First a user_created one for the new user. Then user_updated for the same user, then user_updated for the discobot. This is tested on a live version of Discourse.

It looks like the behavior of the user_updated event was changed in

https://github.com/discourse/discourse/commit/519b70ea4692834638e4b95c92b81a2160621681

which triggers as long as a column on the user is changed. @zogstrip Do we need all the columns to trigger the event? If not I’ll add a a filter that checks the columns which have changed against the UserUpdated::OPTION_ATTR constant.

5 Likes

I needed it for the group-tracker plugin

https://github.com/discourse/discourse-group-tracker/blob/0b7d33899c843354dc3cfd65cd00bdd5c424c3bb/plugin.rb#L191-L200

In that case I only need the primary_group_id so UserUpdater::OPTION_ATTR will have to be updated.

4 Likes

Fixed in

https://github.com/discourse/discourse/commit/19f3b8116150c3692e8bd4349cdb3708621a2ddd
https://github.com/discourse/discourse-group-tracker/commit/36fd0ded022ab7b62dba6d840658576f64d57a7b

7 Likes