許可權管理 等比權值法

2022-09-22 22:24:17 字數 1173 閱讀 5927

忙著寫erp系統,對許可權管理有了點新的感悟。之前使用linux系統的時候,linux的許可權控制使用的就是:

r(讀許可權)==1;

w(寫許可權)==2;

x(執行許可權)==4;

擁有三種許可權就是7(4+3+1),rw就是3(2+1)。

這樣的方式對許可權管理倒是不錯,我也試著寫了等比權值的許可權管理。

許可權表:

乙個使用者可以擁有所有的這些許可權,如超級使用者,那麼他的權值就是30(16+8+4+2):

這個方法的關鍵就是,乙個可以將使用者的許可權值解析成許可權的集合的演算法。因為使用的等比為2的數列,實現起來倒不是很困難。我用php和python實現了:

php:

1

function readpower($num,$list=array

())78//

求小於許可權值最大的權值數

9$i=$num/2;

10while ($i

17 }

python:

1

def **(num,list=):23

if(num & num-1) ==0:45

return

list

67 i=num/2

8while i

9 i=i+1

10if((i & i-1) ==0):

1112

return **(num-i,list)

1314

其他語言的實現也是同理。這裡的乙個關鍵就是,利用了二進位制的特性。($num & $num-1) == 0可以判斷乙個數是不是2的幾次方數。說個小例子就很好明白:

8的二進位制是1000;

7的二進位制是0111;

8和7按位與的結果就是0。而,所有的2的幾次方數,都是1個1後邊跟一堆0。很好就可以判斷乙個數是不是2的幾次方數。

總結:關於角色控制許可權這一塊,也很好使用。完全可以讓乙個角色擁有乙個許可權值,表示他擁有的許可權集合。比如,我做的erp系統中就有普通使用者角色,他的許可權只有訂單管理和商品管理的許可權,所以按照我的例子,許可權值就是6。

我也是偶然想到這個辦法控制許可權,如果有什麼不妥之處,請指正。

嫡權法賦權法 1 熵值法賦權

一 基本原理 在資訊理論中,熵是對不確定性的一種度量。資訊量越大,不確定性就越小,熵也就越小 資訊量越小,不確定性越大,熵也越大。根據熵的特性,可以通過計算熵值來判斷乙個事件的隨機性及無序程度,也可以用熵值來判斷某個指標的離散程度,指標的離散程度越大,該指針對綜合評價的影響 權重 越大,其熵值越小。...

Ant Design Pro 鑑權 許可權管理

ant design pro 1.0.0 v4 最近需要專案需要用掃碼登入,因此就使用antd pro提供的鑑權能力來做 authorized.ts 提供初始化路由元件和過載路由的函式 import renderauthorize from components authorized import ...

數模演算法 熵權法(用於客觀確定權值)

根據資訊熵的定義,對於某項指標,可以用熵值來判斷某個指標的離散程度,其熵值越小,指標的離散程度越大,該指針對綜合評價的影響 即權重 就越大,如果某項指標的值全部相等,則該指標在綜合評價中不起作用。按照資訊理論基本原理的解釋,資訊是系統有序程度的乙個度量,熵是系統無序程度的乙個度量 如果指標的資訊熵越...