Как правильно определить контроль доступа и контекст в Операции подресурса? - PullRequest
0 голосов
/ 28 мая 2019

Я настраиваю операцию подресурса, используя аннотации в сущности.Я пытался использовать "access_control" и "swagger_context", но игнорирует меня.

/**
 * @ORM\Entity
 *
 * @ApiResource(
 *     attributes={"access_control"="is_granted('ROLE_API')"},
 *     normalizationContext={"groups"={"company", "company:read"}},
 *     denormalizationContext={"groups"={"company", "company:write"}},
 *     collectionOperations={
 *         "get" = {"access_control"="is_granted('ROLE_SUPER_ADMIN')"},
 *         "post" = {"access_control"="is_granted('ROLE_SUPER_ADMIN')"}
 *     },
 *     itemOperations={
 *         "get"={ "access_control"="is_granted('view', object)" },
 *         "put"={ "access_control"="is_granted('edit', object)" },
 *         "delete"={"access_control"="is_granted('ROLE_SUPER_ADMIN')"}
 *     },
 *     subresourceOperations={
 *         "api_eolo_companies_eolo_users_get_subresource"={
 *               "method"="GET",
 *               "access_control"="has_role('ROLE_COMPANY')",
 *               "swagger_context"={ "summary" = "Get Users by Company",
 *                                  "responses"={ 200 ={"description"="OK"}},
 *              },
 *          },
 *     }
 * )
 */

class EoloCompany {

        //..

    /**
     * @ORM\OneToMany(targetEntity="App\Entity\User", mappedBy="company", orphanRemoval=true)
     * @Groups({"company:read"})
     * @ApiSubresource()
     */
    private $users;
}

Я хотел бы иметь в документах open api (swagger) что-то вроде этого:

GET /api/eolo_companies/{id}/users Get Users by Company.

Однако я получаю текст по умолчанию.

GET  /api/eolo_companies/{id}/users Retrieves the collection of User resources.

Кроме того, контроль доступа не работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...