Если вы хотите, чтобы только зарегистрированные пользователи имели доступ к вашему сайту, у вас может быть что-то вроде этого ... по крайней мере, так я реализую нечто подобное на своем сайте ...
В вашем файле app_controller добавьтепосле начала вашей функции beforeFilter ()
function beforeFilter(){
//Check if user was able to log in thru Auth using your form in the homepage
if($this->isLoggedIn() == TRUE){
$this->layout = 'default'
}else{
// You can created this layout with a login form and
// whatever else you need except <?php echo $content_for_layout; ?>
// Any registered user will be allowed to login using the form
// and continue on to your site using the default layout
// But it guarantees no one else can see your default site
$this->layout = "unregistered_user"
}
}
На вашем App_controller.php вы можете создать эту функцию
function isLoggedIn(){
// You can also use $this->Auth->user directly in your App's beforeFilter()
// But I just like to have functions so I can reuse
if($this->Auth->user()){
$loggedin= TRUE;
}else{
$loggedin= FALSE;
}
return $loggedin;
}
У меня есть нечто похожее на мой сайт, но оно используется только в том случае, еслив режиме обслуживания.Я все еще развиваю свой сайт.Единственная проблема, с которой я столкнулся при таком способе, на которую у меня пока нет времени / необходимости смотреть, состоит в том, что мои ошибки не отправляются в нужный мне макет.Предположим, что пользователь вводит http://www.mydomain.com/inexistentpage, а затем торт переносит их в мой макет по умолчанию.Это может быть легко исправить, но у меня пока нет времени, чтобы сделать это.
ПРИМЕЧАНИЕ: я быстро сделал это с головы до головы, и из-за этого этот код не проверен.Однако, если у вас есть какие-либо проблемы, пожалуйста, дайте мне знать, и я протестирую это и отправлю обратно.