V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
minowu
V2EX  ›  PHP

在Symfony中,如何通过根据 routing placeholder 来判断当前用户是否具有 access control?

  •  
  •   minowu · 2013-07-25 14:16:34 +08:00 · 3251 次点击
    这是一个创建于 4125 天前的主题,其中的信息可能已经有所发展或是发生改变。
    目的:

    为了使一个用户可以管理多个商店

    例子:

    有一个用户A,他被赋予了商店ID为1和2的商店的管理权限。

    那么他访问 ^/shop/1 和 ^/shop/2 路径的商店时,可以管理后台。
    而他访问 ^/shop/3 商店时,不具备后台访问的功能。

    ---

    - 这个功能该怎么实现?
    - 如果有相关的英文资料,直接给我连接也行。
    - 或者推荐给我几个英文的搜索关键词

    ---

    谢谢
    5 条回复    2015-11-30 13:41:02 +08:00
    thursday
        1
    thursday  
       2013-07-25 14:18:17 +08:00
    cookie 查数据库 看看有没有权限呗
    minowu
        2
    minowu  
    OP
       2013-07-25 14:36:39 +08:00
    @thursday 最终肯定是查数据库的方式来判断。但是关键的是这些代码有没有Symfony或者第三方的Bundle已经提供了,并且要自己扩展的话,应该写在Symfony那一层里最合适,而不是写在控制器里。
    scourgen
        3
    scourgen  
       2013-07-25 14:41:33 +08:00   ❤️ 1
    ACl可以做,但ACL的目的其实是更加细粒度的权限控制。

    你这个需求就直接写判断就行了,用第三方bundle反而显得麻烦。
    minowu
        4
    minowu  
    OP
       2013-07-25 21:32:40 +08:00
    @scourgen 我研究一下,Thanks
    thenbsp
        5
    thenbsp  
       2015-11-30 13:41:02 +08:00
    Secruity 中的 ACL 和 Voter 都可以实现您的需求,具体 http://symfony.com/doc/current/cookbook/security/voters.html
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2568 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 05:51 · PVG 13:51 · LAX 21:51 · JFK 00:51
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.