2012-03-25 103 views
1

我試圖在我的CakePHP應用管理部分中使用第三方文件管理器(http://labs.corefive.com/2009/10/30/an-open-file-manager-for-ckeditor-3-0/)實現CKEditor。CakePHP 1.3:具有FileManager權限的CKEditor(FIXED!)

一切都已經很好地設置,包括上傳照片等,但是,我有一個大的問題,我似乎無法弄清楚如何解決。

filemanager.config.php文件中有auth()函數可以防止未經授權使用FileManager。 我不知道如何實現此功能,只允許我的應用程序的管理員使用。在我的用戶表中,我使用group_id來分類用戶,administrators group_id1

我想過_SESSION,但我一直無法創建解決方案。

/** 
* Check if user is authorized 
* 
* @return boolean true is access granted, false if no access 
*/ 
function auth() { 
    // You can insert your own code over here to check if the user is authorized. 
    // If you use a session variable, you've got to start the session first            
    session_start(); 
    if ($_SESSION['User.group_id'] == 1){ 
     return true; 
    }else{ 
     return false; 
    } 
} 

非常感謝您的幫助。

============================================== =======================================

編輯

我整個安裝程序錯誤

  1. 我正在使用我的CakePHP會話作爲數據庫,我已將其更改爲php。
  2. 我的$ _SESSION的代碼是錯誤的

我能解決它每以下幾點:

function auth() { 
    session_name("CAKEPHP"); 
    session_start(); 
    if(isset($_SESSION['Auth']['User'])) 
    { 
     if($_SESSION['Auth']['User']['group_id'] == 1) 
     { 
      return true; 
     } 
    } 
    return false; 
} 

它是這樣的偉大工程。

============================================== ======================================

回答

1

您顯示的代碼來自fceditor?如果您在CakePHP中正確設置了auth,並且沒有修改默認會話密鑰,則您的用戶數據將位於$ _SESSIOn ['Auth'] ['User']中。

在CakePHP中不要直接使用$ _SESSION,使用Session組件。

+0

固定。你的回答給了我一個提示,並讓我朝着我的解決方案的正確方向前進。首先,我使用數據庫來存儲會話,其次是$ _SESSION代碼錯誤。看到我的編輯。謝謝! – 2012-03-25 15:37:56

+0

歡迎。 :)您也可以配置CakePHP以使用數據庫進行會話。它帶有基於php,文件和數據庫的會話支持,您可以將其擴展到任何您需要的。同時檢查CakePHP身份驗證組件。 – burzum 2012-03-25 18:01:40

+0

是的,我知道這一點。我暫時將它切換回'php',直到我製作一個函數來檢查cake_session以獲取我需要的信息以允許使用FileManager。 – 2012-03-26 18:47:16