Я использую ezPublish 5.3 только для администрирования. Что я хочу сделать, так это управлять пользователями / группами пользователей / ролями в этом бэк-офисе и контролировать их доступ к API, разработанному FOSRestBundle.
Вот мой файл security.yml:
security:
providers:
ezpublish:
id: ezpublish.security.user_provider
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
my_api:
pattern: ^/api/v[0-9]+
stateless: true
ezpublish_http_basic:
realm: eZ Publish REST API
ezpublish_front:
pattern: ^/
anonymous: ~
ezpublish_rest_session: ~
form_login:
require_previous_session: false
logout: ~
default:
anonymous: ~
И вот что я хочу сделать в своем контроллере:
<?php
namespace Acme\AppBundle\Controller;
use FOS\RestBundle\Controller\FOSRestController;
class ItemsController extends FOSRestController
{
public function postItemsAction(Request $request)
{
if (!$this->get('security.authorization_checker')->isGranted('EZ_CUSTOM_ROLE')) {
throw new \Exception('No Auth');
}
//... do something
}
}
Я получил этот ответ:
{
"code": 0,
"message": "User 'USER_LOGIN' doesn't have user/login permission to SiteAccess 'site'"
}
Как я могу этого добиться? Как я могу получить роль пользователя?
В профилировщике я вижу, что когда я выполняю стандартный POST с базовой аутентификацией для этого действия, пользователь подключается с ролью Symfony по умолчанию ROLE_USER
.