系統開發中的許可權控制

2021-08-31 08:45:44 字數 4150 閱讀 7997

簡單點說就是運用運算實現,用「|」或 來實現許可權新增,用「^」異或 實現許可權刪除,用「&」與 實現許可權嚴重,如果為真則有許可權

<?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技術應用最深入最具有代表性的行業之一。正是因為這個 原因,銀行系統的開發相對而言有著更高的要求。首先,對系統的準確性 穩定性 安全性 高效能的要求是不言而喻的,技術上的...