DbHelp.ru
Маленький Yii блог
Комментарии
Гость: комент
Гость: wahaha
zolter: Друпал на Yii? ))
nastia: http://drupal.org/
JB: Да там просто ад)) мне всего 3 значения нужно чтобы выпадало, все равно спасибо)...



Сервер Ultima Online - Forest Wars (от создателя данного блога)

Закрываем сайт от лишних глаз

Рубрика: Мелкие заметки на тему Yii

Оцените эту статью:

Рейтинг: 0.00 (0)
4 Ноя. 2009
Опубликовать в Twitter Написать в Facebook Опубликовать в своем блоге livejournal.com

В данном переводе раскрыта идея как закрыть сайт от гостей. т.е. пользователи должны войти в систему прежде чем смогут увидеть содержимое.

---

Я делал несколько небольших веб-страниц, содержащих конфиденциальную информацию. В моем случае только авторизированны пользователи должны иметь к ней доступ. В данной статье я покажу что у меня получилось при помощи 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)" [англ.]



Если хотите опубликовать этот материал у себя - пожалуйста, разместите ссылку на страницу откуда вы его взяли.
Другие yii статьи:

  1. Давайте сегодня поговорим что же такое “контроллер” и для чего он используется в приложениях на базе MVC next В уроке ... "Шаг 5 : Контроллер"

  2. ... "Всех с 2012-м"

  3. Эта статья устарела т.к. была написана для yii версии 1.0.х; Если вы используете более новую версию - у вас могут ... "Урок 8 : Подключаем дизайн"

xoma

Было сказано: Среда, 04 Ноябрь 2009

Еще для этих целей можно использовать фильтр...

[adm] zolter

Было сказано: Среда, 04 Ноябрь 2009

Ага
ну это просто перевод :)

[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 для авторизации!
Никто не сталкивался?

Оставить комментарий


Код:
Имя: