надо базу переделывать полностью, я такое делал, новый форум где структура в нескольких таблицах, посты отдельно, темы и разделы отдельно, и если пост или файл находиться в скрытом разделе или теме, хотя бы один из родителей является скрытым, доступа нет