4

私は製品在庫管理 Web サイトを実装しています。魔女には多くの権限層があります。あらゆる種類の権限を持つ管理者がいて、レベル 2、3、4 など... 権限が少なくなります。ただし、特定のユーザーは、ユーザーの作成や他のユーザーに関する情報の読み取りなど、特別な権限を持つことができます。

次のシナリオを検討してください。

 * admin inserted user1, user2 and user3.
 * user1 inserted user4 and user5 under his supervision.
 * user1 edited user4's permission so: user4 can see all user5's
   activity, but user5 cannot see user4's activity.
 * user5 inserted user6 and user7 and can see all their activity, but
   user4 cant!
 * user2 is in the same "level" and user1 and user3, but he cant see
   their sublevels activity.

この権限ツリーをデータベースで暗黙的にするにはどうすればよいですか?

パーミッション ツリーのグラフィカル スキーム:

ここに画像の説明を入力

4

1 に答える 1

1

まず、ユーザーのテーブルは{id、username、password、...、owner}になります。所有者は、アカウントを作成したユーザーIDです。これにより、ユーザーのツリーが作成されます。

次に、{userid、updatepriviledgeid、deleteuserid、updateuserid、viewid、...、wholetree、...}の形式のACLテーブルが必要になります。各エントリはメインテーブルのユーザーID用です(これは主キーではありません)。 )残り、たとえばupdatepriviledgeidは、このユーザーがユーザー情報を更新できることを意味します。各レコードには、ブール値として関連付けられたwholetreeupdtaeがあり、ユーザーがツリー全体に対するアクセス許可を持っているかどうかを単純化します。

于 2012-05-10T16:47:24.833 に答える