允许admin用户在security.yml中的access_control中进行所有访问

时间:2016-01-25 15:32:37

标签: symfony admin access-control symfony-2.7

noob问题,我在Symfony 2.8中工作,我想在访问控制中授予对角色ROLE_ADMIN的所有访问权限,有没有办法在不通过access_control在每个规则中编写'ROLE_ADMIN'?

我在security.yml中试图避免的是这个:

access_control:
    - { path: ^/application, roles: ROLE_STUDENT }
    - { path: ^/keyword, roles: ROLE_MENTOR }
    - { path: ^/department, roles: ROLE_ADMIN }
    - { path: ^/requirement, roles: ROLE_MENTOR}

对此:

access_control:
    - { path: ^/application, roles: [ROLE_ADMIN, ROLE_STUDENT ]}
    - { path: ^/keyword, roles: [ROLE_ADMIN, ROLE_MENTOR ]}
    - { path: ^/department, roles: ROLE_ADMIN }
    - { path: ^/requirement, roles: [ROLE_ADMIN, ROLE_MENTOR ]}

在一个更大的文件中

1 个答案:

答案 0 :(得分:2)

是的,您可以添加角色层次结构:

#!/usr/bin/env python

import rospy
from rosgraph_msgs.msg import Clock
from diagnostic_msgs.msg import DiagnosticArray

class ListenerVilma:
    """Class that listens all topics of the file vilmafeagri"""

    def Clock_(self):
        """Method that listens the topic /clock if the file vilmafeagri"""
        def __init__(self):
            self.listener()


        def callback(self, clock):
            print clock


        def listener(self):
            rospy.Subscriber('clock', Clock, self.callback)


    def Diagnostics_(self):
        """Method that listen the topic /diagnostics from rosbag file vilmafeagri"""
        def __init__(self):
            self.listener()


        def callback(self, diagnostics):
            print diagnostics


        def listener(self):
            rospy.Subscriber('diagnostics', DiagnosticArray, self.callback)


if __name__ == '__main__':
   rospy.init_node('listener', anonymous=True)
   ListenerVilma.Clock_()
   rospy.spin()

如果您有security: role_hierarchy: ROLE_ADMIN: [ROLE_STUDENT, ROLE_MENTOR] ,那么您还有ROLE_ADMINROLE_STUDENT