minowu
V2EX  ›  PHP

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

  •  
  •   minowu · Jul 25, 2013 · 4016 views
    This topic created in 4701 days ago, the information mentioned may be changed or developed.
    目的:

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

    例子:

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

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

    ---

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

    ---

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

    你这个需求就直接写判断就行了,用第三方bundle反而显得麻烦。
    minowu
        4
    minowu  
    OP
       Jul 25, 2013
    @scourgen 我研究一下,Thanks
    thenbsp
        5
    thenbsp  
       Nov 30, 2015
    Secruity 中的 ACL 和 Voter 都可以实现您的需求,具体 http://symfony.com/doc/current/cookbook/security/voters.html
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3216 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 52ms · UTC 12:35 · PVG 20:35 · LAX 05:35 · JFK 08:35
    ♥ Do have faith in what you're doing.