Pull to refresh
0
0
Send message
Добрый день. Спасибо за сжатую статью, которая спасает от выпадения глаз при вычитывании тонн документации. Спасает при знакомстве с Симфони. К сожалению, возникли некоторые проблемы, так как сжатый характер статьи имеет и обратную сторону. Банально не хватает комментариев, «что, зачем, какие варианты».

Во-первых, можете уточнить по тексту:
1) у вас тут идёт:
Устанавливаем Sonata Admin
$ composer require sonata-project/admin-bundle
Для того, чтобы взаимодействовать с базой данных...
такое ощущение, что данную команду требуется применять, только если хочешь установить все три последующие библиотеки. Так ли, или обязательно?
2) У вас создаются сущности City и Address. Правильно ли я понимаю, что они введены только для примера применения на них ролей. А то по ходу текста вначале складывается впечатление, что они часть механизма админки или авторизации. К сожалению, «само собой разумеещеся» у всех разное.

Во-вторых, собственно проблемы.
3) При настройке Doctrine появилась ошибка:
Unrecognized options «SonataUserBundle, FOSUserBundle» under «doctrine.orm.entity_managers.default.mappings.App»
При перестройке конфига Симфони благополучно вырезал кусок, который требовался далее. загуглив, получил следующее решение:
doctrine:
...
    orm:
        auto_generate_proxy_classes: true
        naming_strategy: doctrine.orm.naming_strategy.underscore
        auto_mapping: true
        mappings:
            App:
                is_bundle: false
                type: annotation
                dir: '%kernel.project_dir%/src/Entity'
                prefix: 'App\Entity'
                alias: App
            SonataUserBundle: ~
            FOSUserBundle: ~
что-то связанное с использованием обрезанных и полных конфигов.

4) При задании config/packages/security.yaml
security:
    ...
    acl:
        connection: default
вылетала следующая ошибка: «Unrecognized option „acl“ under „security“». Что решается перемещением параметра acl вне блока security:
security:
    ...
acl:
    connection: default


5) Последняя проблема, через которую мне никак не удаётся пробиться.
При выполнении завершающей части статьи получаю в итоге: Access Denied. AccessDeniedException in \vendor/symfony/security-http/Firewall/AccessListener.php (line 76).
Что связано с тем, что доступ на страницу /admin требует наличия ролей ROLE_, ROLE_ADMIN, ROLE_SONATA_ADMIN (не знаю И или ИЛИ), а у созданного пользователя --super-admin есть только ROLE_SUPER_ADMIN и ROLE_USER.
Если прямо в коде, где создаётся карта адресов добавить роль D:/OSPanel/domains/sym2/vendor/symfony/security-http/Firewall/AccessListener.php::__invoke()
        list($attributes) = $this->map->getPatterns($request);
        $attributes[] = 'ROLE_SUPER_ADMIN';
, то удаётся прошибиться в саму админку (то есть получил доступ). Однако, какие роли/метки там надо дальше добавить пользователю, чтобы можно было убрать эту инъекцию? Взгляд в БД тоже не спасает.
Можете разъяснить, как побороть данную проблему?

Спасибо

Information

Rating
Does not participate
Registered
Activity