Auth コンポーネントと Acl コンポーネントを使用して CakePHP サイトに認証/承認の組み合わせを実装しようとしていますが、実装で奇妙なことが起こっています。適切な acos、aros、および aros_acos テーブルがあり、ある程度は機能しているようです。
私は自分の行動を次のようにマッピングしました:
$this->Auth->mapActions(array('read' => array('view'), 'update' => array('edit')));
私の acos テーブルは次のようになります。
- サイト
- 1.1 ページ
- 1.2 ユーザー
- 1.3 グループ
- 1.4 管理者
および aros テーブル:
- ユーザー
- 1.1 エディター
- 1.1.1 管理者
- 1.1.1.1 管理者名
- 1.2 レギュラーユーザー
ユーザー、編集者、および管理者はグループです。Admin_name は admins グループのメンバーである admin ユーザーであり、regular_user は users グループのメンバーです。
ここで、 aros_acos テーブルで、「ユーザー」グループに「ページ」の CRUD 権限を次のように与えると: 0 1 1 0 (これにより、読み取りと更新の権限が与えられます)、すべてが正常に機能します (少なくとも「ビュー」および「編集」アクション)。しかし、0 1 0 0 (読み取り権限のみ) を入力すると、'/' にリダイレクトされます。特に気づいたことの 1 つは、app_controller または少なくとも beforeFilter() 関数を呼び出していないことです。 app_controller.
さらに、ユーザーが crud にアクセスできない場合に $this->flash メッセージを送信して、ユーザーが「許可されていない」ことを知らせる beforeFilter() を作成しました (これを行う必要がありました)。 、 $this->Auth->authError が機能していないようです)。したがって、それを念頭に置いて、ユーザー グループの aros_acos テーブルを次のように書き換えます: 0 0 1 0 (更新のみのアクセス許可)。今回は、「表示」アクションにアクセスするとフラッシュ メッセージが表示されます (これは正しいです)。アクセス許可がないため)、「編集」アクションにアクセスしようとするとフラッシュメッセージも表示されます。
私は何かが欠けています、そして私は何がわかりません。私はこの質問を書きました。それを終える前に、自分で解決策を考え出すことを望んでいます...しかし運はありません。私はまだ何が起こっているのか分かりません。私はそれがいくつかのコントローラーのことだと思います.何かアイデアはありますか?