代码之家  ›  专栏  ›  技术社区  ›  Alana Storm

Sylius管理员控制器如何限制给管理员用户?

  •  1
  • Alana Storm  · 技术社区  · 6 年前

    当以传统方式(或更准确地说, 一些 传统的)php mvc系统,如果一个应用程序有一个“管理”区域需要用户登录到该应用程序,程序员将要么使用继承自某个基本管理控制器的控制器类,要么使用一些管理特性。这些系统中的路由代码知道在管理控制器/特性上使用某些方法来检查用户是否被授权。

    然而,Sylius控制器 stand-alone classes with no parent classes .

    <?php
    //...
    final class DashboardController
    {
        //...
    }
    

    并且似乎不包含任何执行“是用户登录”检查的代码。

    Sylius程序员如何创建到需要用户登录的控制器的路由?

    什么系统,在引擎盖下,强制一个Sylius用户登录或不登录?

    1 回复  |  直到 6 年前
        1
  •  3
  •   Gabi Udrescu    6 年前

    Sylius将symfony用作PHP框架,它依赖于安全组件来限制对应用程序某些不打算公开的区域(如管理面板)的访问。

    在这里可以看到这样的配置: https://github.com/Sylius/Sylius/blob/master/config/packages/security.yaml (见第16行和第101行)。

    资源(基本上,Sylius中的每一个实体——产品、用户、属性、分类)都有一个更高级的权限,可以通过类似的插件加以利用。 https://github.com/Sylius/RbacPlugin https://bitbag.shop/products/sylius-access-control-layer .

    例子: https://github.com/Sylius/Sylius/blob/master/src/Sylius/Bundle/AdminBundle/Resources/config/routing/admin_user.yml#L10

    您可以在此处阅读有关symfony安全组件如何工作的更多信息: https://symfony.com/doc/current/components/security.html