1
我正在使用在我的Web應用程序上執行ACL的PHP類。它基於驅動程序,實際上它只是與配置數組一起工作。我想將這個數組遷移到一個MySQL模式來爲它做一個驅動程序。這是實際的配置陣列:將PHP陣列移植到MySQL架構以獲得ACL授權
$config = array(
/**
* Groups as id => array(name => <string>, roles => <array>)
*/
'groups' => array(
-1 => array('name' => 'Banned', 'roles' => array('banned')),
0 => array('name' => 'Guests', 'roles' => array()),
1 => array('name' => 'Users', 'roles' => array('user')),
50 => array('name' => 'Moderators', 'roles' => array('user', 'moderator')),
100 => array('name' => 'Administrators', 'roles' => array('user', 'moderator', 'admin')),
),
/**
* Roles as name => array(location => rights)
*/
'roles' => array(
'#' => array('website' => array('read')), // default rights
'banned' => false,
'user' => array('comments' => array('create', 'read')),
'moderator' => array('comments' => array('update', 'delete')),
'admin' => array(
'website' => array('create', 'update', 'delete'),
'admin' => array('create', 'read', 'update', 'delete'),
),
'super' => true,
),
);
這是我一直在想:
這讓我對現有的組關聯的角色,所以我已經解決的第一件事。我不知道如何添加的是每個角色的位置和權利。顯然,它將轉到與role_id相關的單獨表格中,但重現以下內容的最佳方法是什麼?array('comments' => array('update', 'delete'))
?
最後一件事,如果一個角色有一個布爾值(比如角色被禁或超級角色),這意味着全部爲真或全部爲假。這可能更適合角色。沒有?
預先感謝您!