問題に基づいてウェブサイトを確保するための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')
);
ありがとうございました! 私はもう別の問題があるようです。私は権限のある役割をadminに変更し、それは通常のユーザーをブロックする際に機能しました。 次に、テストのためにroles_usersテーブルのテストユーザーロールを2に変更しました。 このユーザーはまったくログインできません。通常のユーザーとは異なる管理者にログインする方法はありますか? $ user = ORM :: factory( 'user'); $ status = $ user-> login($ _ POST); – user1019144
テストユーザーはログインロールを持っていますか?私が試した最初のものは、単純に1から2に役割を変えた – Darsstar
はいIセットアップ認証デフォルトのスキーマに ユーザーを使用して、テーブル、役割、roles_users /アウト/登録のログインに関連するメソッドのすべてが正常に動作している 私が試したもう1つのことは、ユーザをロール2として管理者に保存するように登録コードを変更することです '$ user-> add( 'roles'、ORM データベースに問題はないようですが、ユーザーは保存されていますが、role_userが保存されましたが、まだこのユーザーではログインできません。 – user1019144