Cake php menu генерация - PullRequest
       10

Cake php menu генерация

0 голосов
/ 14 апреля 2010

Я пытаюсь сгенерировать динамическое меню в соответствии с пользовательскими правами, предоставленными компонентом ACL в торт php ..

т.е., если пользователь входит в систему, мне нужно проверить, какие все действия разрешены для этого конкретного пользователя и в соответствии с этим списком действий, которые мне нужно создать, меню

Может ли кто-нибудь помочь мне получить все разрешенные действия из таблиц acos, aros, acos_aros

Ответы [ 2 ]

1 голос
/ 16 апреля 2010

Попробуйте Панель управления PoundCake . Динамическая генерация меню реализована там. Он генерирует только те пункты меню, к которым пользователь имеет доступ, на основе таблиц acos, aros, acos_aros и menu. Есть контроллер для полуавтоматического заполнения таблицы меню данными из вашей таблицы acos.

1 голос
/ 14 апреля 2010

У меня есть модель AdminMenu, которая определяет иерархию навигации моей системы администратора. Это одинаково для всех пользователей. Структура кэшируется после каждого сохранения в ней. Когда пользователь входит в систему администратора, я извлекаю данные меню из кэша, а также извлекаю все разрешения, которые были предоставлены пользователю, вошедшему в систему. Я делаю это в одном запросе. Подробности размещены здесь .

Затем я рекурсивно перебираю данные меню, проверяя каждый узел на соответствие разрешениям для этого пользователя, выстраиваю структуру меню и сохраняю ее в сеансе. Эта структура меню содержит только узлы, к которым у авторизованного пользователя есть права доступа, и она генерируется только один раз при входе в систему. Затем эта структура меню отображается с помощью помощника.

Кроме того, разрешения доступны в сеансе, поэтому вы можете проверить, отображать ли ссылки в ваших представлениях или нет, например, Отображать ссылку для удаления сообщения можно только в том случае, если у них есть разрешение на его удаление.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...