这是我的问题:我有一个管理区域,我通过使用 name 和 password 登录来保护它。
当我输入 url 时,我的意思是类似 localhost/admin/area 它重定向到 localhost/user/admin
问题是如果我输入了错误的地址,例如 localhost/admin/545
它会将我带到管理区域和控制器中的错误
这是我的代码:
应用控制器:
function beforeFilter()
{
$this->Auth->loginAction = array('controller'=>'users','action'=>'login','admin'=>false);
$this->Auth->authorize = array('Controller');
if(!isset($this->request->params['prefix']))
{
$this->Auth->allow();
}
if(isset($this->request->params['prefix']) && $this->request->params['prefix'] == 'admin')
{
$this->layout = 'admin';
}
}
function isAuthorized($user)
{
if(!isset($this->request->params['prefix']))
{
return true;
}
}
菜单:
<?php
$pages = $this->requestAction(array('controller'=>'pages','action'=>'menu','admin'=>false)); ?>
<a href="/index"><img class="title" src="/img/title.png" alt="studio"></a>
<ul class="menu">
<?php foreach($pages as $k => $v): $v = current($v);?>
其余代码是:
登录功能:
function login()
{
if ($this->request->is('post'))
{
if ($this->Auth->login())
{
return $this->redirect($this->Auth->redirect());
} else {
$this->Session->setFlash("Votre login ou votre mot de passe ne correspond pas");
}
}
}