Доброго всем.
Друзья подскажите где копнуть...
Стоит задача сделать так, что б при просмотре фотоальбомов, неавторизированный пользователь получал сообщение что "нужно войти".
Например если гость пытается посмотреть профиль пользователя, выскакивает сообщение что "вы должны быть авторизированы" и форма ввода логина и пароля.
А вот при просмотре фотоальбома пользователя, такого нет. Ссылки я попрятал от гостей, но если просто вбить адрес типо www.сайт.ру/albums/номер альбома-title.html, альбом приспокойно открывается.
В каком файле нужно поставить проверку на права пользователя и в краце хотя бы, как?
Буду очень признателен за помощь. Неделю бьюсь уже
Нужна помощ.
#1
12 ноября 2014 в 07:12
#2
12 ноября 2014 в 08:31
Какая версия InstantCMS?
#3
12 ноября 2014 в 08:49
Какая версия InstantCMS?
Ох… опять забыл написать. ICMS 2.1.1
Сегодня в 06:34
#4
12 ноября 2014 в 09:50
if (!cmsUser::getInstance()->isLogged()) { cmsCore::error404(); }
#5
12 ноября 2014 в 10:58
if (!cmsUser::getInstance()->isLogged()) { cmsCore::error404(); }
Оу… благодарю. А в каком файле прописывать сию строчку не подскажете? Явно не в шаблоне ведь?
#6
12 ноября 2014 в 20:51
Можно и через шаблон ловить))
Просто не рендерить полученные данные, например в templates\default\content\albums_list.tpl.php, если к уже имеющемуся условию, добавляем проверку на залогинненость пользователя, то пока он не авторизуется будет лицезреть "Нет элементов для отображения" (если надо, можно послать его еще дальше — cmsCore::error404(); ). Конечно, при этом остается возможность просмотра картинок по прямой ссылке...
Далее, смотрим адрес ссылок этих картинок: sitename.ru/photos/view/id, т.е. контроллер photos -> экшен view. Ищем что там рендериться на выходе… templates\default\controllers\photos\view.tpl.php
Собственно, тут вставляем в начале шаблона наше условие, с добавлением выхода из php-скрипта:
Но и теперь, прямая ссылка на сам файл картинки доступен: sitename.ru/upload/000/u1/001/3e90feff.jpg < — у вас будет своя абракадабра. Возможно вопрос решается правкой .htaccess, а может есть и другие способы, сходу не скажу)) В любом случае, среди обычных пользователей экстрасенсов не много — угадать название картинки слегка затруднительно.
Просто не рендерить полученные данные, например в 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(); } ?>Перекидывало на форму входа?
про группу пользователей сходу сказать не могу, надо копать и разбираться)) но ничего невозможного тут нет))
#9
13 ноября 2014 в 22:56
Вообще конечно не по феншую в шаблоне логику писать)). MVC категорически против! но главное никому не показывать =)
#10
14 ноября 2014 в 00:25
Вообще конечно не по феншую в шаблоне логику писать)). MVC категорически против! но главное никому не показывать =)
А то… фен-шуй в ярости, но хоть какой то результат. Большое спасибо вам за помощь.