phpの下の権限の計算方の実現


パーミッション設計
いくつかのパターンがあります。
ユーザー+グループ+キャラクター+パーミッション
ユーザ+グループ+権限
ユーザ+キャラクター+パーミッション
ユーザ+パーミッション
最近他の人の設計方法を見ましたが、権限値は「整数」で表されることが多いです。例えば、追加、閲覧、削除、修正など、それぞれ1、2、4、8の数の整数を使って代用します。
1.2、2、4、8、16…のように、2のn乗で権限値のセットを構成します。あるユーザの権限値は、そのサブセットの整数の合計です。 7=1+2+4、5=1+4です。データベースから何種類かの権限を持つユーザーを検索するなら、まずこれらの権限値を加算して、仮にとkを仮定して、そしてselect * from テーブル where 1 and ユーザ権限値 = ’k’;あるユーザにどのような権限があるかを判断するなら、その権限値kを取り出して、それぞれk&1、K&2、K&4、k&16…を使います。本当なら、値が「&」の右の整数に等しい権限を表します。例えば、k&4が本当なら、このユーザには権限表の中の値が4に等しい権限があります。
2.素数2、3、5、7、11…で構成する権限セットで、あるユーザーの権限はそのサブセットの各整数の積になります。 210 = 2*3*5*7はこの方法が面白いと思います。因数をどう分解するかが難しいです。しかし、私は元の著者の表現を認めませんでした。権限の間には関係があると思います。もしあるユーザーに削除権限があれば、閲覧権限があります。そうでなければ削除できません。事実は確かにそうです。でも、複雑すぎて、間違いやすいと思います。権限は原子のものがいいと思います。お互いに干渉しないでください。つまり、あるユーザーには削除権限があり、閲覧権限がないと削除操作ができなくなります。彼はものが見えないので、この矛盾を解決する鍵はユーザーに権限を与える時に、閲覧権限も彼に与えられます。
3.整数ではなく、「ベクトル表」の方法で、可能なすべての権限を一定の順序で並べ、追加、閲覧、修正、削除など、ユーザーの権限値は100ビットの長さを固定する文字列で、10010100000001…01、左から各ビットに1つの操作権限を対応させます。このような権限があるなら、このビットの値は1となります。逆に0である場合、作者がユーザー権限値を100桁に固定するのは、アップグレードの問題を考慮していると思いますが、これは科学的ではないと思います。
アクセスリスト:追加、ブラウズ、変更、削除、ユーザAは追加とブラウズの権限がある場合、その権限値は11、ユーザBはブラウズと修正の権限がある場合、その権限値は011、ユーザCはブラウズと削除の権限がある場合、その権限値は0101である。
4.私のかつてのやり方は、バックグラウンド管理において権限を二つの種類に分けています。欄の権限と操作権限は、各欄に一つのディレクトリに対応しています。操作権限は細分化してブラウズ、追加、修正、削除しています。ユーザーはシステムに入ったら、まず欄の権限があるかどうかを判断し、操作権限があるかを判断します。まずアクセスページのパスパスパスパスパスパスを取得してディレクトリを分解し、ユーザーが所有するディレクトリ権限に対応しています。このディレクトリがユーザが管理するディレクトリ配列に含まれていると、このディレクトリに入る権限があります。そうでなければ、ありません。しかし、操作権限を判断するのはちょっと面倒なようです。修正と削除は私のファイルの命名規則と基本的に対応していますが、少し違っています。追加と削除の機能を一つのファイルに統合しました。例えばファイル名はproAddEdit.phpです。幸いにもファイルを修正する時に、伝達パラメータIDが多くなったことを認識しました。そこで、正規の表現でこの問題を解決しました。今日はこの方法は古いようです。対象に向かう思想に慣れないので、フレームシステムでシステムを開発します。
以上は個人の浅はかな認識と説明で、もし間違いがあれば、ご指摘をお願いします。