簡單點說就是運用運算實現,用「|」或 來實現許可權新增,用「^」異或 實現許可權刪除,用「&」與 實現許可權嚴重,如果為真則有許可權
<?php
define("public_article", 1); //發行文章
define("create_article", 2); //新增文章
define("modify_article", 4); //修改文章
define("delete_article", 8); //刪除文章
define("sharch_article", 16); //搜尋文章
//所有的許可權
$final_allow = public_article | create_article | modify_article
| delete_article | sharch_article | create_comment | delete_comment;
//增加許可權使用 |
echo
"管理者擁有的全部許可權:" .$final_allow. "
";
$no_shearch_allow = $final_allow ^ sharch_article;
//刪除許可權使用 ^ 或 & ~
echo
//編輯人員獨有的許可權
$editor_allow = public_article | modify_article | delete_article;
$no_editor_allow = $final_allow & ~$editor_allow;
echo
//判斷許可權使用 & ( 是, 返回非0; 不是, 返回0)
define("lis", 1);
define("add", 2);
define("del", 4);
define("upd", 8);
define("rea", 16);
$all_full = lis | add | del | upd | rea;
$all_sub = lis | add | del;
if($all_sub&rea) echo "a";
?>
1. <?php
2. /**
3. * 許可權控制類
4. */
5.
6. class include_purview
7.
41. }
42. }
43.
44. /**
45. * 建構函式 給角色賦予許可權
46. */
47. private function __construct()
48.
53.
54. /**
55. * 獲取類的唯一例項
56. */
57. public static function getinstance()
58.
62. return self::$instance;
63. }
64.
65. /**
66. * 檢查許可權
67. *
68. * @param $usertype 角色
69. * @param $purview 許可權
70. */
71. public function check($purview)
72. & $purview)
74.
77. return false;
78. }
79.
80. /**
81. * 給角色加許可權
82. */
83. public function addpur($purview)
84. |= $purview;
86. }
87.
88. /**
89. * 給角色減許可權
90. */
91. public function delpur($purview)
92. ^= $purview;
94. }
95.
96. /**
97. * 返回角色擁有的許可權
98. */
99. public function getpur()
100. )
105.
108. }
109. return $arr;
110. }
111. }
呼叫示例
php**
1. /**
2. * 示例
3. */
4. //在session中讀使用者組
5. @session_start();
6. $_session['role'] = 'user';
7.
8. //獲取許可權類的例項
9. $pruview = include_purview::getinstance();
10. //設定角色
11. $pruview->usertype = $_session['role'];
12. //獲取該角色擁有的許可權
13. $arr = $pruview->getpur();
14. echo '該使用者的許可權有:'.join(',',$arr)."\n";
15. //判斷執行的操作是否有許可權
16. if (true === $pruview->check(include_purview::create ))
17.
20. else
21.
24. //去掉使用者的新增許可權
25. $pruview->delpur(include_purview::create );
26. $arr = $pruview->getpur();
27. echo '該使用者的許可權有:'.join(',',$arr)."\n";
28. //執行新增操作
29. if (true === $pruview->check(include_purview::create ))
30.
33. else
34.
37. //加上使用者的新增許可權
38. $pruview->addpur(include_purview::create );
39. $arr = $pruview->getpur();
40. echo '該使用者的許可權有:'.join(',',$arr)."\n";
41. //執行新增操作
42. if (true === $pruview->check(include_purview::create ))
43.
46. else
47.
50.
51. //具體的操作
52. function create()
53.
系統開發中許可權控制的重要性
一 為什麼要做許可權控制?每個企業都有自己的分工協作體系 不同崗位的員工,負責不同的工作內容 不屬於崗位職責範圍內的事情,員工通常不具有參與權和知情權。如果每個崗位的員工都可以參與所有的工作 看到所有的資訊,就會給企業的分工協作體系造成巨大衝擊,導致內部管理混亂。更極端的情況是,員工利用自己 無限制...
系統開發 系統規劃
一 系統規劃五個階段 1 專案目標和動機 2 立項價值判斷 3 專案選擇和確定 4 初步調查 5 可行性研究 包括經濟可行性,技術可行性,法律可行性,使用者使用可行性 二 可行性分析八個階段 1 複查系統目標和規模 2 分析現在系統 3 匯出新系統的高層邏輯模型 4 使用者複查 5 提出並評價解決方...
銀行系統開發
1 銀行系統的開發與其它系統有何異同?我想大家關注銀行資訊系統建設的話題不僅僅是因為銀行it業有 錢 途,更重要的是因為銀行業是it技術應用最深入最具有代表性的行業之一。正是因為這個 原因,銀行系統的開發相對而言有著更高的要求。首先,對系統的準確性 穩定性 安全性 高效能的要求是不言而喻的,技術上的...