2011-02-01 39 views
0

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

我認爲的另一種方法是檢查存儲在自定義過濾器內的數據庫中的值,然後重定向到通知「網站已禁用」的操作。

回答

1

您可以創建一個過濾器來檢查,如果當前用戶可以訪問請求的模塊/動作:

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

0

你可以動態加載你想要在你的index.php文件中的應用程序。

相關問題