Я создаю сайт, который дает каждому пользователю личную домашнюю страницу с контентом, который они могут видеть, но другие не могут. Обратный вызов в обработчике _menu разрешает доступ, если пользователь является владельцем страницы, и запрещает его в противном случае; там все хорошо.
Я только что пересмотрел эту страницу, так что ее содержимое состоит из набора блоков вместо большого пакета кода. Содержимое собирается правильно, но с проблемой: если пользователь A смотрит на личную страницу пользователя B, он получает страницу «Отказано в доступе», как и должен. Однако блоки по-прежнему вызываются, и их содержимое по-прежнему попадает на страницу, так что пользователь A может видеть личные вещи пользователя B. Страница также не получает обычного «Вы не авторизованы для доступа к этой странице». сообщение, которое обычно отображается на странице «Отказано в доступе».
Я в полном недоумении, чтобы понять, почему это происходит. Я могу помешать блокам работать, предоставив им некоторые правильно разработанные функции «Показать блок на определенных страницах», но все еще происходит что-то, что (а) кажется неправильным и (б) я не понимаю. В совокупности это вызывает у меня плохое / смешное чувство о том, что происходит с контролем доступа к сайту, особенно в том, что касается блоков. Кто-нибудь может предложить какое-либо понимание здесь? Спасибо!