Sylius Admin Controller如何限制为管理员用户

时间:2019-01-07 23:49:09

标签: php model-view-controller sylius

在传统的(或更准确地说,是 some 传统的)PHP MVC系统中工作时,如果应用程序具有要求用户登录到该应用程序的“管理员”区域,则程序员将使用从某些基本管理控制器继承的控制器类,或使用某些管理特性的控制器类。这些系统中的路由代码知道可以使用管理控制器/特征上的某些方法来检查用户是否被授权。

Sylius控制器为stand-alone classes with no parent classes

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

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

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

什么系统在后台强制执行sylius用户登录?

1 个答案:

答案 0 :(得分:3)

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

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

资源(基本上是Sylius中的每个实体-产品,用户,属性,分类类)具有更高级的权限,可以通过https://github.com/Sylius/RbacPluginhttps://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 Security组件的工作方式:https://symfony.com/doc/current/components/security.html