Проблемы с ACL в Symfony2 - PullRequest
       2

Проблемы с ACL в Symfony2

0 голосов
/ 16 февраля 2012

Я пытался реализовать ACL в системе, которую разрабатываю, и у меня было несколько проблем.Это в основном из-за полного отсутствия документации по этому вопросу.Было бы здорово, если бы у нас было больше информации об этом сложном и фундаментальном компоненте.В любом случае, я был бы рад написать что-нибудь, как только пойму

В любом случае, у меня возникают следующие проблемы: 1. У меня есть роль в Class-Field-Scope ACE для просмотра и редактирования.поле объекта.Когда я проверяю вид, используя это: isGranted ('VIEW', object, 'myField')

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

  1. Когда я удаляю группу, я хочу удалить все записи ACL, связанные с этой группой.Я пробовал так: $ aclProvider-> deleteAcl (ObjectIdentity :: fromDomainObject ($ group))

Это работает.Затем я пытаюсь создать новую группу.Группа создается, но установка ACL завершается с ошибкой:

Примечание: неопределенное смещение: 0 в строке Project / vendor / symfony / src / Symfony / Component / Security / Acl / Dbal / MutableAclProvider.php 850

Любая помощь с благодарностью!

1 Ответ

4 голосов
/ 19 февраля 2012

РЕДАКТИРОВАТЬ: я обновил исходный код, теперь это гораздо лучшее решение.

Я немного поэкспериментировал с ACL и Symfony2.

Из того, что я обнаружил , это способ проверить область поля класса:

$post = $postRepo->findOneById(1);

$securityContext = $this->get('security.context');
$oid = new ObjectIdentity('class', 'Liip\\TestBundle\\Entity\\Post');

$object = new FieldVote($oid, 'id');
if (true === $securityContext->isGranted('EDIT', $object)){
   echo "Access to 'id' field granted";
}else{
   echo "Access denied";
}

 $object = new FieldVote($oid, 'post');
 if (true === $securityContext->isGranted('VIEW', $object))
 {
    echo "Access to 'post' field granted";
 }else{
    echo "Access denied";
 }

Об удалении ACL Я до сих пор ничего не знаю, мне нужно будет разобраться с этим позже. Надеюсь, это поможет!

Еще немного информации по теме. Вероятно, не для вас, но для других пользователей это может быть полезно: Smyfony2 и ACL

С уважением Рето

...