我有两个应用程序。我想根据存储在数据库中的字段禁用一个。 是否可以通过代码使用过滤器来禁用应用程序(((如果它不是可能的话)一个模块)?我找到了一段执行该项目的代码:禁用,但我认为它不够好。禁用Symfony中的应用程序或模块
我认为的另一种方法是检查存储在自定义过滤器内的数据库中的值,然后重定向到通知“网站已禁用”的操作。
我有两个应用程序。我想根据存储在数据库中的字段禁用一个。 是否可以通过代码使用过滤器来禁用应用程序(((如果它不是可能的话)一个模块)?我找到了一段执行该项目的代码:禁用,但我认为它不够好。禁用Symfony中的应用程序或模块
我认为的另一种方法是检查存储在自定义过滤器内的数据库中的值,然后重定向到通知“网站已禁用”的操作。
您可以创建一个过滤器来检查,如果当前用户可以访问请求的模块/动作:
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);
}
类似的东西。也许你可以使用模块security.yml文件并覆盖检查用户凭据和权限的函数,如hasCredential()方法?这似乎是一个更干净的方式来做到这一点。
参见:http://www.symfony-project.org/api/1_4/sfBasicSecurityUser
你可以动态加载你想要在你的index.php文件中的应用程序。