0

アクセスを制限します。簡単にするために、3つの列があるテーブルがあります。ユーザー、パス、アクセス。

私は4種類のページを持っています...1つは1、別名スーパー管理者を必要とします。もう1つは2つ、別名一般管理者を必要とします...他の3つはmod用です。最後に、すべてのユーザーがアクセスできます。

コードを書くことはできますが、どうすればよいですか?

私は自分で2つのオプションを思いつきました:ライブラリに入る関数またはインクルードするファイルをインクルードし、それらがアクセスできない場合は、「制限付き」にリダイレクトします

他に選択肢はありますか?これを行う最も一般的な方法は何ですか?コードを再利用するのに最も効率的です。

4

2 に答える 2

0

達成しようとしていることを実行するには、2つの方法があります。私が普段行っている方法は、アクセスレベルに基づいてリンクを非表示にすることです。特定のコンテンツの表示が許可されていない場合は、リンクを非表示にして、適切な権限を持つユーザーにのみ表示する関数を作成してください。

ユーザーが制限されたページのURLを入力した場合、デフォルトのページ、おそらくホームページ、または「ここ」に移動できない理由を説明するページにリダイレクトする必要があります。特権をテストするだけで、デフォルトのターゲットページが1つあります。「安全な」ページは、ページのレベルに対して現在のアクセスレベルをテストし、等しくない場合はリダイレクトする必要があります。

別の方法は、ユーザーが十分な権限を利用できない場合に読み込まれるデフォルトの「アクセス拒否」ページを作成することです。

私はいつも最初の方法を使います。実装は非常に簡単で、多くの頭痛の種、そして最も重要なことに、ユーザーのフラストレーションを軽減します。これは、プログラミングの質問というよりも、ユーザーインターフェイスの質問です。

これを自問してみてください。サイトにどこにも行かなかった管理者リンクがあった場合、amazon.comはどれほど迷惑になるでしょうか。

于 2013-02-19T05:06:27.290 に答える
0

私の唯一の本当のアドバイスは、独自のACLライブラリを作成しないことです。そこにはたくさんのACLライブラリがあります。https://packagist.org/search/?q=aclを見て、ユースケースに合うと思われるものがあるかどうかを確認してください。私はhttps://github.com/alexshelkov/SimpleAclを見てきましたが、最初は良いかもしれません(私自身は使用していません)。

于 2013-02-19T05:14:03.990 に答える