1

サードパーティのファイルマネージャー(http://labs.corefive.com/2009/10/30/an-open-file-manager-for-ckeditor-3- )を使用して、 CakePHPアプリの管理セクションにCKEditorを実装しようとしています。 0 /)。

写真のアップロードなど、すべてがうまくセットアップされています。しかし、修正方法がわからないという大きな問題が1つあります。

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;
}

それ自体は素晴らしい働きをします。

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

4

1 に答える 1

1

あなたが示すコードはfceditorからのものですか?CakePHPで認証を正しく設定し、デフォルトのセッションキーを変更していない場合、ユーザーデータは$ _SESSIOn['Auth']['User']になります。

CakePHPでは、$ _ SESSIONを直接使用せず、Sessionコンポーネントを使用してください。

于 2012-03-25T15:05:30.197 に答える