Я работаю с классом PHP, который выполняет ACL для моего веб-приложения.Он основан на драйверах и фактически работает только с массивом конфигурации.Я хочу перенести этот массив в схему MySQL, чтобы сделать драйвер для него.Это фактический массив конфигурации:
$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'))
?
Последнее, если роль имеет логическое значение (например, роль запрещена или рольсупер) это значит что все верно или все ложно.Это, вероятно, больше подходит для ролей.Нет?
Заранее спасибо!