我一直在阅读堆栈溢出问题,整个下午都试图弄清楚这一点..CakePHP的验证拒绝管理路由页面
我有一个指数/登录/注销/注册功能的用户控制器,但也有admin_index/admin_add/admin_edit/admin_delete等
我启用了验证组件,并在我的users_controller我试图拒绝访问ADMIN_ *页面如果Auth.User.role != 'admin'
,当我使$this->Auth->authorize = 'controller';
它拒绝访问site.com/admin/users /页面,也似乎杀死注销功能,即使我的帐户的角色设置为管理。
但是,如果我输入的网址,我重定向回到主页。
users_controller.php中
<?php
class UsersController extends AppController {
var $name = 'Users';
function beforeFilter(){
parent::beforeFilter();
$this->Auth->authorize = 'controller';
$this->Auth->allow('register');
}
function isAuthorized() {
if ($this->Auth->user('role') != 'admin') {
$this->Auth->deny('admin_index','admin_view', 'admin_add', 'admin_edit','admin_delete');
}
}
app_controller.php
<?php
class AppController extends Controller {
var $components = array('Auth', 'Session');
function beforeFilter() {
$this->Auth->loginAction = array('controller'=>'users','action'=>'login', 'admin'=>false);
$this->Auth->logoutRedirect = array('controller'=>'users','action'=>'logout');
$this->Auth->loginRedirect = array('controller'=>'shows', 'action'=>'index');
$this->Auth->autoRedirect = false;
$this->Auth->allow('home');
}
我的第二个问题涉及到路$this->Auth->deny('page');
将用户重定向,据我可以告诉它重定向到/但我需要它重定向回用户控制器。
希望这一切有意义,我已经提供了足够的信息..
工程治疗!谢谢!我做了一个用户测试登录,并尝试去site.com/admin/users/它否认我,但仍然重定向到/而不是显示/索引...任何想法?或者我应该开一个新的问题? – medoix
您是以管理员用户身份登录的用户,角色是“admin”吗?如果您希望用户在登录时将其重定向到site.com/shows/,请从AuthComponent配置中删除读取'autoRedirect'=> false的行。另外,我只注意到你的logoutRedirect很奇怪。这应该是用户在注销后重定向到的位置。也许尝试删除AppController中的autoRedirect和logoutRedirect行,然后看看事情是如何工作的。 – mtnorthrop
如果普通用户试图访问'/ admin /'页面,则无法正确重定向。任何想法如何解决这个问题? – waspinator