Нужна помощ.
Друзья подскажите где копнуть...
Стоит задача сделать так, что б при просмотре фотоальбомов, неавторизированный пользователь получал сообщение что "нужно войти".
Например если гость пытается посмотреть профиль пользователя, выскакивает сообщение что "вы должны быть авторизированы" и форма ввода логина и пароля.
А вот при просмотре фотоальбома пользователя, такого нет. Ссылки я попрятал от гостей, но если просто вбить адрес типо www.сайт.ру/albums/номер альбома-title.html, альбом приспокойно открывается.
В каком файле нужно поставить проверку на права пользователя и в краце хотя бы, как?
Буду очень признателен за помощь. Неделю бьюсь уже
Какая версия InstantCMS?
Ох… опять забыл написать. ICMS 2.1.1
if (!cmsUser::getInstance()->isLogged()) { cmsCore::error404(); }
if (!cmsUser::getInstance()->isLogged()) { cmsCore::error404(); }
Оу… благодарю. А в каком файле прописывать сию строчку не подскажете? Явно не в шаблоне ведь?
Просто не рендерить полученные данные, например в templates\default\content\albums_list.tpl.php, если к уже имеющемуся условию, добавляем проверку на залогинненость пользователя, то пока он не авторизуется будет лицезреть "Нет элементов для отображения" (если надо, можно послать его еще дальше — cmsCore::error404(); ). Конечно, при этом остается возможность просмотра картинок по прямой ссылке...
Далее, смотрим адрес ссылок этих картинок: sitename.ru/photos/view/id, т.е. контроллер photos -> экшен view. Ищем что там рендериться на выходе… templates\default\controllers\photos\view.tpl.php
Собственно, тут вставляем в начале шаблона наше условие, с добавлением выхода из php-скрипта:
Здорово! Всё работает! Теперь выкидывает на страницу 404
Можно и через шаблон ловить))
А можно как то сделать вот эту строчку:
Типо как сделано на пользователях. Гостей при попытке посмотреть профиль юзера перекидывает на страницу входа. Сейчас пытаюсь сам отыскать это условие в шаблонах, пока безрезультатно.
И может быть вы знаете… возможно ли поставить проверку на группу пользователей? Ну например что б группа "новички" не могла видеть то, что может видеть группа "пользователи"…
Проверка типо такой вот:
if (!cmsUser::getInstance()->Группа "Гости" или "новички"()) { cmsCore::error404(); exit(); } Иначе всё показывается.
попробуйте <?php if (!cmsUser::getInstance()->isLogged()) { cmsCore::getController('auth')->redirectToAction('login'); exit(); } ?>Перекидывало на форму входа?
про группу пользователей сходу сказать не могу, надо копать и разбираться)) но ничего невозможного тут нет))
Вообще конечно не по феншую в шаблоне логику писать)). MVC категорически против! но главное никому не показывать =)
А то… фен-шуй в ярости, но хоть какой то результат. Большое спасибо вам за помощь.