我一直在閱讀堆棧溢出問題,整個下午都試圖弄清楚這一點..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