0
我使用的代碼直出基於登錄憑據Kohana的3授權碼修改
問題爲確保網站的一個Kohana的指導是代碼似乎如果用戶登錄到只檢查和角色之間沒有區別。
我將如何修改此腳本只允許管理員訪問此動作
在基本控制器我的代碼
public $assert_auth = FALSE;
public $assert_auth_actions = FALSE;
public function before()
{
parent::before();
$this->_user_auth();
}
protected function _user_auth()
{
$action_name = Request::instance()->action;
if (($this->assert_auth !== FALSE && Auth::instance()->logged_in($this->assert_auth) === FALSE)
|| (is_array($this->assert_auth_actions) && array_key_exists($action_name, $this->assert_auth_actions)
&& Auth::instance()->logged_in($this->assert_auth_actions[$action_name]) === FALSE))
{
if (Auth::instance()->logged_in())
{
Request::instance()
->redirect('');
}
else
{
Request::instance()
->redirect('admin/login');
}
}
在控制器的管理頁面
有代碼
public $assert_auth_actions = array(
'index' => array('login')
);
謝謝你這有道理! 我似乎不得不另一個問題了。我將授權角色更改爲管理員,並且阻止了普通用戶的工作。 我做的下一件事是將用戶role_users中的測試用戶角色更改爲2以進行測試。 該用戶根本無法登錄。登錄管理員的方法與普通用戶不同嗎? $ user = ORM :: factory('user'); $ status = $ user-> login($ _ POST); – user1019144
測試用戶是否具有登錄角色? – Darsstar
是我設置使用默認模式 用戶,角色,roles_users 所有的輸入/輸出/登記有關測井方法工作正常的權威性表 我試着簡單地改變從1作用,以2的第一件事在這一點上,用戶不能再登錄 我嘗試的第二件事是修改我的註冊碼以將用戶保存爲角色2,即管理員$ user-> add('roles',ORM :: factory('role') - > find(1));' 在數據庫中一切看起來不錯,用戶保存並且role_user已保存,但我仍然無法使用此用戶登錄 – user1019144