Symfony1 禁用Symfony中的应用程序或模块

Symfony1 禁用Symfony中的应用程序或模块,symfony1,symfony-1.4,Symfony1,Symfony 1.4,我有两份申请。我想根据数据库中存储的字段禁用一个。 是否可以通过代码(可能使用过滤器)禁用应用程序((如果不可能)模块)?我发现了一段执行项目的代码:disable,但我认为这还不够好 我认为另一种方法是检查存储在自定义筛选器内的数据库中的值,然后重定向到通知“站点已禁用”的操作。您可以仅在index.php文件中动态加载所需的应用程序。您可以创建一个筛选器,检查当前用户是否可以访问请求的应用程序模块/行动: if($this->getRequest()->getParameter(

我有两份申请。我想根据数据库中存储的字段禁用一个。 是否可以通过代码(可能使用过滤器)禁用应用程序((如果不可能)模块)?我发现了一段执行项目的代码:disable,但我认为这还不够好


我认为另一种方法是检查存储在自定义筛选器内的数据库中的值,然后重定向到通知“站点已禁用”的操作。

您可以仅在index.php文件中动态加载所需的应用程序。

您可以创建一个筛选器,检查当前用户是否可以访问请求的应用程序模块/行动:

if($this->getRequest()->getParameter('module')=='yourmodule' && !$this->getUser()->mayAccess('yourmodule'()){
  //redirect to somewhere else
}
在用户类中:

function mayAccess($module){
  $key = $module.'_enabled';

  if(!$this->hasAttribute($key)){
    $enabled = ... //Fetch permission from database
    $this->setAttribute($key,$enabled);
  }

  return $this->getAttribute($key);
}
差不多吧。也许您可以使用modules security.yml文件并重写检查用户凭据和权限的函数,比如hascentral()方法?实际上,这似乎是一种更干净的方法

见: