Я занимаюсь разработкой библиотеки управления доступом для своего проекта и ищу лучшее решение для этого:
Я получаю весь свой список доступа из базы данных в массив.В результате это выглядит так:
$array = array(
'*' => array('administrator' => TRUE),
'frontend/*' => array(
'user' => TRUE,
'unregistered' => TRUE
),
'backend/*' => array(
'user' => FALSE,
'unregistered' => FALSE
),
'backend/user/*' => array(
'moderator' => FALSE,
'supermoderator' => TRUE,
),
'backend/article/*' => array(
'supermoderator' => TRUE
),
'backend/article/add/new' => array(
'moderator' => TRUE
)
);
"*" означает, что этот пользователь имеет доступ ко всем связанным параметрам, backend / article / * означает, что группа имеет доступ ко всем параметрам статьи (article / add, article/ удалить, ...).
Как видите, в backend/article/add
нет элемента для супермодератора, но он имеет основной доступ ко всем страницам статьи.
Как лучше всегопроверить это?Я пытался array_walk()
, но, думаю, это мне не поможет.
Спасибо за советы ...
Я могу поделиться всем своим кодом, если хотите.
* Редактировать *
Я храню неправильно?Если у вас есть лучшее решение для его хранения, я буду рад его услышать.
Спасибо за любые советы