2015-02-05 3 views
0

Я хотел бы проверить, если конкретный пользователь (заданный по имени, а не текущего пользователя) имеет доступ к некоторым arbirary пути написать, например:Magnolia CMS - проверить другие пользователи разрешения

«проверка пользователя«Foo 'имеет доступ на запись к узлу'/contacts/common/bar '"

До сих пор я могу видеть только методы, позволяющие проверять разрешения только для текущего пользователя. Существует ли более общий метод, позволяющий такую ​​проверку?

ответ

0

Войдите в систему AdminCentral как суперпользователь, затем перейдите в раздел «Инструменты/Разрешения», введите имя пользователя, которого вы хотите проверить, установите флажок «Разрешить показывать разрешения» и нажмите кнопку «Получить список разрешений». Если вы хотите сделать то же самое программно, проверьте код в info.magnolia.module.admininterface.pages.PermissionPage. Это в значительной степени сводится к получению UserManager, получение пользователя от него, а затем итерация по всем группам и ролям, назначенным пользователю для получения всех списков ACL, а затем просто их перечисление.

НТН, Jan

+0

это достаточно просто перебрать каждый из ACL user.getAllRoles()? он должен включать каждую роль, которую пользователь имеет в том числе роли, назначенные через каждую группу? – Pma

+0

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

+0

Благодарю вас за помощь! – Pma

Смежные вопросы