Make permission errors more verbose.
This is mostly about error messages returned for threads/posts actions.
Idea is to communicate it as clearly as possible to user that action failed because this specific item/type of action is not possible in this category or this thread because of category it's in.
How new error messages could look like:
You can't close threads in the "News".
You can't edit posts in the "News" if they are older than 5 minutes.
It seems superficial to put category name in error messages but with exception of bulk actions we hide unavailable actions, and for bulk actions user would have to somehow preserve error message and look up the failed items location to learn the reason for action failing. There's also added bonus for eventual 3rd party API consumers.
Being explicit with categories also lets users learn the big picture of what's allowed and what isn't in community. Below message seems like a good way for user to learn that threads in "News" are read-only to him:
You can't reply to threads posted in the "News"
Explicit "you" is for user to know that there may be other users (eg. moderators) who may be able to perform the action. It should be avoided for actions that are not allowed by design:
Approved post's can't be made unapproved.
One place that should avoid being scaringly verbose should be message displayed below closed thread's replies explaining to user why he/she can't post in it.
Punting this task. I'll worry about those once I get into writing a new GraphQL API.