シンプルな十分な機能へのアクセス権、あるいは5-6のテーブルは十分にすることができ、非常に複雑取得する必要が、満ちああをいじる必要はありません...

そうなんですよ「背中の原点にトス、トスするトス」と呼ばれることわざがありますが、彼らは戻って原点に送信されるべき最後の言葉です。

1.ユーザテーブル(複数のユーザーである)
2.ロールテーブル(そのうちいくつかの役割があります)
3.ユーザーの役割アソシエーションテーブル(それらのロールに属するユーザー)
4.許可テーブル(および割り当てられている必要な権限のある)
5。 (ユーザが権限を持っている、役割も別々と一緒にすることができる権限を有する)権限記憶テーブル

例えば機能する許可決定 
のcheckPermission(ユーザID列、文字列permissionCode)
IsAuthorization(ユーザID列、文字列permissionCode)を 
実質的要件を満たしています。

通常、分析を必要とする
1ページ上の各操作の列で動作させることによって。
checkPermission(ユーザーID、「PageA.BtnAdd」)は、[追加]ボタンを操作する権利を持っていますか?このような権限の追加など。
checkPermission(ユーザーID、「PageA.BtnDelete」)は、[追加]ボタンを操作する権利を持っていますか?このような権限の追加など。
checkPermission(ユーザーID、「PageA.TableB.ColumnC」)は、カラムなしC.を表示する権限を持っています
2.データテーブル、アクセス制御などの分野について
のcheckPermission(ユーザーID、「テーブルA」)は、テーブルにアクセスする権限がありません。
checkPermission(ユーザーID、 "TableA.Access")
のcheckPermission(ユーザーID、 "TableA.Delete")
のcheckPermission(ユーザーID、 "TableA.ColumnB")の列にアクセスします。
checkPermission(ユーザーID、 "TableA.ColumnB.Access")の列にアクセスします。
checkPermission(ユーザーID、 "TableA.ColumnB.Delete")の列にアクセスします。
どのようにあなたが来てほしいどのように、私は想像力が最後の言葉はどのように、シンプルで使いやすいです想像するかと思います。

 

それとも、機能パッケージを見て
CheckColumnPermission(ユーザーID文字列、文字列テーブル、列string)
{
    のcheckPermission(ユーザーID、 "table.column.Access")を返します
}

 

端的に言えば、permissionCodeはどこに書くことができ、その結果、判断することができますが、それにはあなたの合理的な計画を命名する、
必要があまりにもあまりにも責任を投げ、本当にシンプルな真実を行わないために、に非常に複雑なものを作ることができます、簡単な質問を複雑にしない、
それが最後の言葉は、複雑な問題を単純化され、データセットの権限の問題を議論していない、それは、このポスト議論することを超えたデータのフィルタリング権限ある
範囲で。

初期の非常に早い、私は0,1機関の代表者を見てきたもの、ない限り許可めったに、本当に使いやすいではありません。
また、非常に早い、私はどのような権限の代表を見て、2の代わりにどのような権限、4は、彼らは8を表しどのような権限、どのような権限を表し
提示し、1 + 2 + 4 + 8、それらの許可があり、非常に不思議な感じました今、すべてのGABの卵を考えます。

私は毎日勉強、ああ漢の権限、および時間の後ろに落ちるという理由だけで、そこにこのようなものの必要性があるが、Dayong、何
かビジネスに焦点を当てた、またはコアネットワークアプリケーションや電子商取引の作業では、最後の言葉ではない、とネットワークは、お金は稼ぐ
今電子商取引の時代で、目を覚ます、友人が言った、時代が変わってきた、最後の言葉です、ああ、右、私は聞きます。

 

ます。https://my.oschina.net/iwenr/blog/227767で再現

おすすめ

転載: blog.csdn.net/weixin_34111790/article/details/91674901