3
ほとんどのロールに基づいてユーザを認証したいと思います。すべての訪問者は方法のショーに達することができるはずです。だから私はのAppControllerに書いた:CakePHP 3のロールに基づいてユーザを認証する
public function beforeFilter(Event $event) {
$this->Auth->allow(['show']);
}
それは動作します。 AppControllerの
のinitialize()メソッドで、私も持っている:
$this->loadComponent('Auth', [
'authorize' => 'Controller'
]);
を私は、すべての「インデックス」に到達し、メソッドを「追加」する役割を持つログインしているユーザーは、「ユーザー」できるようにしたいと思います私はAppControllerで書いた:
public function isAuthorized($user) {
if (isset($user['role']) && $user['role'] === 'admin') {
return true;
}
if (isset($user['role']) && $user['role'] === 'user') {
$this->Auth->allow(['index', 'logout', 'add']);
}
return false;
}
管理者はすべての方法に期待通りに到達することができます。ロール "user"で記録されたユーザーは、 "index"または "add"メソッドに到達できません。これをどうすれば解決できますか?
ねえ、私はまだ投票はできませんが、あなたの答えは私をたくさん助けました。ありがとうございました! – nexequ