小编Ets*_*shy的帖子

Symfony 4 Voters - 角色和权限问题

我开始使用 Voter System 来保护我的 URL,但我有很多问题。

首先,我不知道我是否必须使用“角色”或“权限”。

“角色”是指 Role_User、Role_Manager 等。“权限”是指“Access_users”、“Edit_User”、“Add_User”等。

我说得对吗?

如果是,如果我没有要控制的对象,我想检查我的选民中的权限以控制对 URL 的访问。

例子

/**
 * @Route("/", name="list")
 * @Security("is_granted('ROLE_ADMIN') or is_granted('PERM_ACCESS_SERIES')")
 */
public function list()
{
    $series = $this->seriesService->findAll();

    return $this->render('backend/series/list.html.twig', [
        "series" => $series
    ]);
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我想检查用户是否具有角色ROLE_ADMIN或权限PERM_ACCESS_SERIES,但我不知道如何在我的选民中进行。

有关信息,“ROLE_ADMIN”是在我的 security.yaml 配置中设置的,但我想让这些角色动态化,以便能够创建角色(并为角色分配权限?)。

在我的 Voter 类中,当我控制一个 Document 时,我会检查所有者和其他可以管理该 Document 的用户,但是当我不传递一个 Document 时,我真的不知道该怎么做。

只是获取用户的权限并检查请求的权限是否在他们中。类似的东西:

if (in_array($attribute, $user->getPermissions())) {
    return true;
}
Run Code Online (Sandbox Code Playgroud)

其实这是我的选民

 protected function voteOnAttribute($attribute, $subject, TokenInterface $token)
{
    //ADMIN and SUPER_ADMIN can do anything they want ! …
Run Code Online (Sandbox Code Playgroud)

authorization symfony doctrine-odm symfony4

3
推荐指数
1
解决办法
1651
查看次数

标签 统计

authorization ×1

doctrine-odm ×1

symfony ×1

symfony4 ×1