0
我很感興趣的是編寫一個能夠幫助我爲不同用戶提供不同權限的類(即ACL類)。 我一直在研究一種很棒的方法,並且按位操作已經出來了!如何允許一些權限而不是其他使用按位系統的權限?
我發現了一篇好文章How to write a permission system using bits and bitwise operations in PHP。文章解釋如何使用按位操作處理權限。
我不知道如何做的唯一的事情是如何讓用戶寫評論,但不發佈線程。
因此,如果允許設置像這樣:
<?php
$perms = array(
'can_post' => 1,
'can_comment' => 2,
'can_edit' => 4,
'can_delete' => 8
);
$user_perms = 2;
//CONDITION #1
if ($user_perms & $perms['can_comment']) {
/* He/She has permission to do this */
} else {
/* He/She doesn't have permission */
}
//CONDITION #2
if ($user_perms & $perms['can_post']) {
/* He/She has permission to do this */
} else {
/* He/She doesn't have permission */
}
?>
所以上述CONDITION #1
秀做工精細和意見應該被允許,但//CONDITION #2
不應該被允許的,因爲用戶沒有發佈許可!
我的問題,如何讓用戶只發表評論但不發帖?發佈你將有'001',並評論你會'010'。
這是否適用於十進制數或只有二進制數?我沒有看到任何二進制操作? – andrebruton 2015-03-10 13:08:21
@andrebruton它只有在每個權限都是2的權力時纔有效。也就是說,你可以有一些聰明,比如'$ perms ['general_posting'] = 3;'擁有自動激活多個基本權限標誌的權限。 – 2015-03-10 15:10:52
完美,得到它的工作! – andrebruton 2015-03-11 16:16:33