php位運算許可權管理

2021-09-29 15:16:15 字數 1755 閱讀 8719

<?php

/** * 簡單許可權類

*/class peak_auth

/*** 本類不允許物件複製的操作**/

public function __clone()

/*** 設定許可權的詳細資訊

* @param string $authmessage

*/public function setauthmessage($authmessage)

/*** 獲取權名稱

* @return int

*/public function getauthname()

/*** 獲取許可權值

* @return int

*/public function getauthvalue()

/*** 獲取許可權的詳細資訊

* @return string

*/public function getauthmessage()

}/**

* 簡單角色類

*/class peak_role

}/**

* 獲取父角色的許可權

*/protected function fetchparentauthvalue()

}/**

* 給予某種許可權

* @param peak_auth $auth $auth

* @return 以便鏈式操作

*/public function allow(peak_auth $auth)

/*** 阻止某種許可權

** @param peak_auth $auth

* @return peak_role 以便鏈式操作

*/public function deny(peak_auth $auth)

/*** 檢測是否擁有某種許可權

** @param peak_auth $auth

* @return boolean

*/public function checkauth(peak_auth $auth)

/*** 獲取角色的許可權值

** @return int

*/public function getauthvalue()

}// 建立三個許可權: 可讀 可寫 可執行

$read = new peak_auth('canread');

$write = new peak_auth('canwrite');

$exe = new peak_auth('canexe');

// 建立乙個角色 user

$user = new peak_role('user');

// 建立另乙個角色 admin ,他擁有user 的所有許可權

$admin = new peak_role('admin',$user);

// 給予user 可讀,可寫的許可權

$user->allow($read)->allow($write);

// 給予 admin 可執行的許可權,另外還擁有user 的許可權

$admin->allow($exe);

// 禁止admin 的可寫許可權

$admin->deny($write);

// 檢測 admin 是否具有 某種許可權

var_dump($admin->checkauth($read));

var_dump($admin->checkauth($write));

var_dump($admin->checkauth($exe));

PHP位運算許可權設計

首先將許可權按照2的次方來定義值,依次類推 define add 1 增加許可權 define upd 2 修改許可權 define sel 4 查詢許可權 define del 8 刪除許可權 a access add upd sel del a擁有增刪改查許可權 b access add upd...

php 位運算許可權問題

許可權問題比如 linux角色許可權 可讀 可寫 可執行 許可權二進位制分別是100 010 001,十進位制就是4 2 1,資料庫許可權欄位若為state 預設為0,通常許可權都是多選框形式,如下圖 可執行 label 3div 4 br 5 div class row style margin ...

php位運算的許可權設計

位運算的運算物件是二進位制位,速度快,效率高,而且節省空間,位運算做許可權控制也相當的靈活。但是位運算有很大的侷限,位移不能超過32次,這就要求許可權的數量不超過32中。將許可權按照2的n次方來定義值,一次類推。為什麼要這個樣子定義,這個樣紙的定義是為了保證每個許可權值 二進位制 中只有乙個1,而它...