【问题标题】:Symfony2: Roles, Users and Grants from DatabaseSymfony2:来自数据库的角色、用户和授权
【发布时间】:2015-11-25 19:26:18
【问题描述】:

我开始使用 Symfony2,我真的很喜欢它!

我有一些问题,你肯定会很容易地帮助我!

当我们使用安全层时,文件security.yml我们设置属性access_control,通常是这样的:

  • {路径:^/管理员角色:ROLE_ADMIN}

传统使用php,我的系统访问规则我使用3张表:

  • 用户 - 用户表
  • 角色 - 角色表
  • 资源 - 资源表
  • 权限 - 授予表

其中,用户有一个角色,一个权限与一个角色和一个资源有关。要检查用户是否有权访问资源,请检查表权限。

引入 Symfony2,属性“路径”将是一个资源,而 ROLE_ADMIN 将是用户的角色。

如何做security.yml,从数据库加载设置。查了官方文档,一无所获。

暂时,谢谢

【问题讨论】:

    标签: symfony symfony-2.7


    【解决方案1】:

    也许您会在这里找到答案。它描述了如何从数据库加载用户:

    How to Load Security Users from the Database (the Entity Provider)

    我建议使用 FOSUserBundle。它很容易处理并帮助您管理 Symfony2 中的安全性

    FOSUserBundle

    问候!

    【讨论】:

    • 我的问题不一样,FOSUserBundle 只是解决了我的一部分问题。
    【解决方案2】:

    其实“读取”路径(在security.yml文件中)的方式是:

    - { path: ^/this/(path|regex|here)$, roles: {CAN_BE_ACCESED_ONLY, BY_THESE_ROLES} }
    

    现在,您从哪里知道哪个用户具有哪个角色?

    来自wherever you load your users.

    例如:

    public function getRoles()
        {
            return array('ROLE_USER');
        }
    

    【讨论】:

    • 我需要创建一个自定义权限/角色并将其存储到数据库中。和 phpBB 完全一样。
    • 用于动态路由检查this。动态访问控制可以查看votersacl lists
    猜你喜欢
    • 2011-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-10
    • 2017-07-05
    • 2018-02-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多