symfony — панель администратора на основе sfDoctrineGuard groups / разрешений

#symfony1 #symfony-1.4

#symfony1 #symfony-1.4

Вопрос:

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

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

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

Есть ли у кого-нибудь более упрощенный способ, как я мог бы это сделать?

Ответ №1:

ioMenuPlugin, вероятно, лучшее, что вы можете там найти. Это позволяет вам определять ваши пункты меню в app.yml. Вы также можете установить учетные данные там, например:

 //apps/backend/config/app.yml
all:
  menu:
    backend_menu:
      children:
        home:
          label:   Homepage
          route:   homepage
        app:
          label:   Your applications
          route:   application
        profile:
          label:   Settings
          route:   profile
          credentials: [admin]
  

пункт меню «Профиль» будет виден только пользователям, имеющим учетные данные «администратора».

Комментарии:

1. Как мне затем использовать это в layout.php ?