refactor(forum): extract forum access check into middleware
Move EnsureForumAccessUseCase from ~39 controllers into ForumAccessMiddleware
applied at the route group level, eliminating repetitive try-catch boilerplate.
UploadFileController is excluded from the group to preserve JSON error responses.