当前位置: 首页 > 知识库问答 >
问题:

Symfony2,如何为每个角色设置访问控制?

姬熙云
2023-03-14

假设出现如下情况:

Class User {}      // User has Admin Role 
Class Role {}     // Role Admin has Access to choose_date
Class Feature {} // Feature route is choose_date

每个用户可以有一个角色。每个角色都可以访问许多功能。我为每个角色设计了保存和检索访问矩阵的部分。所以我知道哪个角色应该访问哪些功能,它被保存在一个名为roles_features的表中。

我是否必须编写自己的函数来检查该角色是否允许路由。注意:我不想使用secuirty。yml文件;

// In my Twig File
{% if my_own_get_access_matrix(app.user.roles, 'choose_date') %}

    <a href="{{ path('choose_date') }}">
        Edit 
    </a>

{% endif %}

我想知道是否存在任何预定义的my_own\u get\u access\u matrix,它为每个角色和链接返回优化的访问控制方式,或者我必须实现我的;

正如我所写的,我不想使用secuirity.yml,因为访问控制需要是动态的。因此,超级用户(ADMIN)应该能够定义角色及其对每个功能的访问,这是一个路由;

提前谢谢。

共有1个答案

颜河
2023-03-14

看起来您正在查找ACL。

 类似资料:
  • 您可通过点击侧边栏角色栏进入角色管理页面。 添加角色 除系统提供角色之外,您可根据企业实际情况自定义角色。点击“添加角色”进行设置:•输入角色名称(必填) •输入角色说明(选填) •勾选角色功能权限(审批、单据为默认权限,不可删除) •勾选角色管理范围(项目或部门) 修改系统角色 主管需要您在部门模块或项目模块设置部门主管或项目主管。具体请详见【通过部门、项目管理员工】

  • 问题内容: 是否可以使用任何基于角色的开源访问控制系统? 问题答案: 布兰登·萨维奇(Brandon Savage)在他的PHP软件包“ ApplicationACL ” 上做了一个演示,该演示可能会或可能不会完成基于角色的访问。PHPGACL可能也能正常工作,但是我不能肯定地告诉您。 但是,我可以告诉您的是Zend Framework 的Zend_ACL组件将执行基于角色的设置(但是您必须子类化

  • 角色定义 [role_definition] 是RBAC角色继承关系的定义。 Casbin 支持 RBAC 系统的多个实例, 例如, 用户可以具有角色及其继承关系, 资源也可以具有角色及其继承关系。 这两个 RBAC 系统不会互相干扰。 此部分是可选的。 如果在模型中不使用 RBAC 角色, 则省略此部分。 [role_definition] g = _, _ g2 = _, _ 上述角色定义表

  • 问题内容: 我需要从另一个控制器内的另一个控制器访问方法。我该怎么做?我可以使用方法吗? 我可以在当前控制器中包含该控制器,并使其成为对象并通过该对象访问该方法吗?这样可以吗? 我想调用另一个控制器的表单方法— newAction。 问题答案: 您可以将控制器定义为服务,然后在另一个控制器中获取它。 在定义所需的控制器即服务中: 然后,在任何控制器中,您都可以通过容器获取此服务: 在文档中有一些关

  • 以下内容是 xingzhou 对 kubernetes 官方文档的翻译,原文地址 https://k8smeetup.github.io/docs/admin/authorization/rbac/ 基于角色的访问控制(Role-Based Access Control, 即”RBAC”)使用”rbac.authorization.k8s.io” API Group实现授权决策,允许管理员通过Ku

  • 我在调用代入 STS 方法时遇到错误。它说用户无权对资源执行。 我做了以下工作: 我创建了一个用于访问 S3 存储桶的角色。 我在策略模拟器上运行了一个测试,工作正常 我创建了一个新组,并在其中创建了一个新策略,该策略对所有资源启用所有 sts 操作。 我使用策略模拟器运行了一个测试,以 sts 承担角色,指向在步骤 1 中创建的角色的 ARN;并且工作正常; 我创建了一个新用户,并将其放在步骤