ログイン中にlogin,addにアクセスさせないようにする
cakephp2系でログイン中のユーザーは、login、addのアクションにはアクセスできないようにしたいのですが、どのように処理をして良いのかがわかりませんどなたかご教授いただけると幸いです(使用コントローラー: UsersController.php)
試したこと⓵
UsersController.phpでisAuthorized()を使用しlogin,addを選択するとfalseを返すようにする
falseでloginRedirectにリダイレクトされると思いました。
public function isAuthorized($user) { if (in_array($this->action, array('login', 'add'))) { return false; } return true; }
試したこと⓶
UsersController.phpでlogin,addアクションの中に 下記のコードを追記しました
ログインしているか判定しtrueだったらログイン後のページにリダイレクトできると思いました。
if ($this->Auth->loggedIn ()) { $this->redirect ( $this->Auth->redirectUrl () ); }
上記どちらもurlからの操作でlogin,addにアクセスすることができてしましました。ログイン中にadd,loginにアクセスさせずアクセスがあったらもの場所にリダイレクトさせるには良いでしょうか。
追記 AppController.php
class AppController extends Controller { public $helpers = array('Html', 'Form', 'Flash', 'Session'); public $components = array( 'DebugKit.Toolbar', 'Flash', 'Session', 'Auth' => array( 'loginRedirect' => array( 'controller' => 'posts', 'action' => 'index' ), 'logoutRedirect' => array( 'controller' => 'posts', 'action' => 'index' ), 'authenticate' => array( 'Form' => array( 'passwordHasher' => 'Blowfish', 'fields' => array( 'username' => 'email', 'password' => 'password' ) ) ), 'loginAction' => array( 'controller' => 'users', 'action' => 'login' ), 'unauthorizedRedirect' => array( 'controller' => 'posts', 'action' => 'index' ), 'authorize' => array('Controller') ) ); public function beforeFilter() { $this->Auth->allow('index', 'view'); $this->set('auth', $this->Auth->user()); } }
あなたの回答
tips
プレビュー