Закрываем сайт от лишних глаз
Рубрика: Мелкие заметки на тему Yii
4 Ноя. 2009В данном переводе раскрыта идея как закрыть сайт от гостей. т.е. пользователи должны войти в систему прежде чем смогут увидеть содержимое.
---Я делал несколько небольших веб-страниц, содержащих конфиденциальную информацию. В моем случае только авторизированны пользователи должны иметь к ней доступ. В данной статье я покажу что у меня получилось при помощи PHP и Yii фреймворка.
Мой пример начинается сразу, после того как вы создали "Свой первое приложение в Yii"
Первым делом вы должны создать новый контроллер, к примеру BaseController (protected/components/BaseController.php)
class BaseController extends CController {
protected function beforeAction($action) {
if (Yii::app()->user->isGuest && $this->id.'/'.$action->id !== 'site/login') {
Yii::app()->user->loginRequired();
}
return true;
}
}
После этого вам надо открывать ваш главный контроллер SiteController, и изменить его родителя. Вместо CController надо указать BaseController. В итоге у вас должно получится:
class SiteController extends BaseController {
...
Вот и все!
п.с. Для контроллеров которые вы будите использовать (новых в том числе) необходимо указывать родительский клас BaseController вместо CController.
Прим. Переводчика: Описанный пример - не единственный способ закрыть доступ от гостей. К примеру, Вы можете используя метод accessRules:
class SiteController extends CController
{
......
public function accessRules()
{
return array(
array('deny',
'actions'=>array('*'),
'users'=>array('?'),
),
);
}
}
Оригинал статьи: "Yii: How to set up a non-public site (ie. users must log in to see content)" [англ.]
Если хотите опубликовать этот материал у себя - пожалуйста, разместите ссылку на страницу откуда вы его взяли.
- Давайте сегодня поговорим что же такое “контроллер” и для чего он используется в приложениях на базе MVC
next
В уроке ... "Шаг 5 : Контроллер"
- ... "Всех с 2012-м"
- Эта статья устарела т.к. была написана для yii версии 1.0.х; Если вы используете более новую версию - у вас могут ... "Урок 8 : Подключаем дизайн"

[guest] Андрей
Было сказано: Среда, 04 Ноябрь 2009
спасибо за статью, а также за все остальные, сейчас сижу почитываю их.
И у меня к вам будет большая просьба, сделать отдельную статью по шаблоннотизатору Smarty, то как его подключать и применять в проекте. Недавно видел на одном сайте как он подключается, но там кратко всё, хотелось бы по подробнее. Да и ещё, недавно появилась третья версия Smarty, если можно сделайте по этой версии описание. Буду вам очень при очень благодарен!

[guest] Андрей
Было сказано: Среда, 04 Ноябрь 2009
да вот тот сайт где было показано как подключать
http://rmcreative.ru/blog/post/smarty-view-renderer-dlja-yii
но хотелось бы ещё третью версию подключить а также как его применять.
Просто я давно сижу на Смарти, а с фреймворком только недавно столкнулся.

[guest] Maxxdev
Было сказано: Среда, 04 Ноябрь 2009
Yii прекрасно поддерживает Паттерн MVC, что позволяет разделять логику и представление, так что большого смысла использовать Смарти не вижу. Лучше глубже изучи фреймворк. Имхо :-)

[guest] Андрей
Было сказано: Среда, 04 Ноябрь 2009
не могу, все мои клиенты желают пользоваться только смарти, да и я тоже к Смарти за долгое время привык, и не люблю когда PHP код в перемешку с HTML.

[guest] Гость
Было сказано: Четверг, 05 Ноябрь 2009
А еще можно использовать редирект
if(Yii::app()->user->isGuest && $this->id.'/'.$action->id !== 'site/login')
Yii::app()->request->redirect(
Yii::app()->createUrl('site/login'),
true
);

[guest] Гость
Было сказано: Воскресенье, 13 Декабрь 2009
Вообще тема сисек не раскрыта. Т.е. как закрыть написано, а как реализовать аутентификацию забыли.
не полная статья :(

[guest] Гость
Было сказано: Воскресенье, 13 Декабрь 2009
Прошу прощения, не сразу увидел что есть хорошие статьи об авторизации )
Супер блог. очень помогает в освоении Yii.
Успехов автору )

[guest] Гость
Было сказано: Четверг, 04 Март 2010
Sorry за вопрос не по теме.
Посоветуйте хороший хостинг для Yii!

[guest] zolter
Было сказано: Четверг, 04 Март 2010
Да любой с php5 с которым у вас хороший пинг. Я все свои проекты держу у себя на vps

[guest] Гость
Было сказано: Среда, 28 Апрель 2010
Сделал как в примере (на основе BaseController)
пишет "Неверное перенаправление на странице"
Использую модуль User для авторизации!
Никто не сталкивался?


