我有兩個應用程序。我想根據存儲在數據庫中的字段禁用一個。 是否可以通過代碼使用過濾器來禁用應用程序(((如果它不是可能的話)一個模塊)?我找到了一段執行該項目的代碼:禁用,但我認爲它不夠好。禁用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文件中的應用程序。