Symfony2:数据库中的角色,用户和授权

时间:2015-08-31 17:28:54

标签: symfony symfony-2.7

我开始使用Symfony2,我真的很享受它!

我有一些问题肯定会让你轻松帮助我!

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

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

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

  • 用户 - 用户表
  • 角色 - 角色表
  • 资源 - 资源表
  • 许可 - 授予表格

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

使用Symfony2,属性“path”将是一个资源,ROLE_ADMIN将是用户的角色。

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

现在,谢谢

2 个答案:

答案 0 :(得分:0)

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

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

我建议使用FOSUserBundle。它非常易于处理并可帮助您管理Symfony2中的安全性

FOSUserBundle

问候!

答案 1 :(得分:0)

实际上,“读取”路径(在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');
    }