Ack, I realise I just gave you one bit of advice and then the opposite advice, sorry about that :( I don't think this would have crashed, and `follow_dataset()` is a bad example for this.

Following is different to update a related item because not-logged-in users cannot possibly follow something even if they were authorized to, because following obviously requires a user account. On the other hand, not-logged-in users _could_ update related items, if they were authorized to. So `related_update()` should use an auth function for this, whereas `follow_dataset()` should  do it in the logic.