I discovered a pretty big issue today following some bug reports with reviewing users. I was creating the “Reviewable” for a user when the user was created, not when they activated their account. Users can’t be approved until their accounts are active so you’d just see a “Reject” button which was confusing. This commit should fix it:
https://github.com/discourse/discourse/commit/c1ea63bdc17ca3e7fabb0d857e59e9234bde7da8
The commit also creates the reviewable asynchronously. Besides being slightly faster for the user activating their account, it gets around a nasty issue of a nested database transaction that I couldn’t recover from