2013-03-08 3 views
0

Извините за мой английский ...SonataAdminBundle и ACL класса сферы применения права

В моем проекте я использую ACL с SonataAdminBundle, но я не могу понять, почему они сделали так, что вам нужно иметь, чтобы создать запись в базы данных, даже если я хочу использовать только класс-область без Object-scope.

Кроме того, когда вы создаете, например, комментарии, SonataAdminBundle автоматически создает запись в acl_object_identities, она загромождает эту базу данных действий.

Я создал роль, которая имеет право на полный доступ ко всем записям в таблице, независимо от того, кто создал записи, но SonataAdminBundle отображает их только и запрещает их редактирование. Документация SonataAdminBundle гласит:

, поскольку разрешение объекта ACL установлено, ACL для объекта должны быть созданы, в противном случае AclVoter запретит доступ EDIT для не суперпользователя администратора пытается изменить еще не супер администратор пользователь. Это делается автоматически, когда объект создается с помощью администратора . Если объекты также создаются вне Admin, посмотрите на метод createSecurityObject в AclSecurityHandler.

Но почему? Как этого избежать?

Не хотите писать крючки.

Благодарим вас за любые комментарии и помощь по этому вопросу.

+0

в настоящее время заменен сервис "security.acl.voter.class", инвалидов JMSSecurityExtraBundle() и написано крюк если (нуль! == $ this-> Регистратор) { $ this-> logger-> debug ('Нет идентификатора ACL для идентификатора объекта. Голосование, чтобы запретить доступ.'); } // return self :: ACCESS_DENIED; // hook fixme return self :: ACCESS_GRANTED; –

ответ

0

Вы можете создать объектные списки управления доступом с php app/console sonata:admin:generate-object-acl

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