1

ユーザーのアクセス レベルに基づいてリンクを表示または非表示にしようとしています。リンクは、ユーザーがいるサイトのセクションによって異なります。また、すべてのリンクが 1 つのメニューにあるとは限りません。それらはおそらくページのさまざまな場所にあります。

現在、ユーザー、グループ、およびセクションを含むデータベース テーブルがあります。メイン メニューは、セクション データベース テーブルから作成されます。アクション テーブルを作成し、アクション メニューの各セクションに表示するリンクを追加する必要があると考えています。だから、これまでの私のテーブルは似ています。

Users
user_id

Groups
group_id
group_title

Sections
section_id
section_title

追加を考えているテーブル。

Actions
action_id
action_title
action_group_id 
action_section_id

よくわからないのは、アクセスが許可されている各グループの [アクション] テーブルに同じリンクを複数回追加する必要があるかどうかです。または、一度追加して、if group id is greater than, then show link を実行します。

同じリンクを複数回入力する例。

action_id   action_title    action_group_id     action_section_id
1           View all        1                   1
2           View all        2                   1
3           View all        3                   1

if/then ステートメントでページがあふれないようにしたかったのです。さらに、アクセス レベルが何を表しているかについて人間の解釈が必要になるため、これは最適な処理方法とは思えません。

これに関するヘルプをいただければ幸いです。ここで完全に間違った方向に進んでいる可能性がありますか?

4

3 に答える 3

2

グループがアクセスできる各権限のエントリを挿入する追加のテーブルを使用して、多対多の関係を作成します。セクションが許可を作成しているものであると仮定するのは正しいですか?

Table: Group_Section (Or whatever you'd like to name it)

Group_id | Section_ID
---------+-----------
       1 |         1
       1 |         2
       1 |         3
       2 |         1
       2 |         3
         |

ID = 1 のグループはセクション 1、2、3 にアクセスできるのに対し、ID = 2 のグループはセクション 1、3 のみにアクセスできることがわかります。次に、必要な権限をテーブルに追加し、外部キーを使用してそれらを管理できます。

それは理にかなっていますか?

于 2012-11-16T22:06:03.730 に答える
0

ここに良い記事がありますが、物事は一般的に議論されていますhttp://en.wikipedia.org/wiki/Access_controlここにリンクの説明を入力してください

あなたの場合、TheCapn書いたものを使用して、すべてのユーザーのセッションを開始し、制限された部分に到達しようとしているときにアクセスレベルを確認するのが最善であることを追加します.

于 2012-11-16T22:09:13.787 に答える
0

個人的には、この種のことを行うために、ユーザー テーブルにユーザー レベルを設定し、セクション テーブルにセクション レベルを設定しました。次に、ユーザー レベルに応じてセクションをフィルタリングするだけです。

これを行うには、次のようにSQLにstatemtnを追加します

AND section_level >= "user_level";

または、すべてのセクションを取得し、php で tham をフィルター処理します。

foreach($section as $s){
 if ($s->level >= user_level) echo $s->title
}

もちろん、< を調整する必要があります。= および > システムの階層に応じて。

私は個人的に、下層階層を使用しています。つまり、レベルが低いほど、より多くの権利があります。このようにして、レベルを 99 か何かに設定することで、「禁止された」ユーザーを作成できます。

これはメニュー専用です。各ページの user_level も制御するようにしてください。誰かがそのページに直接アクセスすると、キックされます..

それがあなたを正しい方向に向けることを願っています。;)

于 2012-11-16T22:09:41.687 に答える