CakePHP 1.3: CKEditor с разрешением FileManager (ИСПРАВЛЕНО!)

Я пытаюсь реализовать CKEditor в своем разделе администрирования приложения CakePHP с помощью стороннего файлового менеджера (http://labs.corefive.com/2009/10/30/an-open-file-manager-for-ckeditor-3-0/).

Все было настроено хорошо, включая загрузку фотографий и т. Д. Однако у меня есть одна БОЛЬШАЯ проблема, которую я не могу понять, как ее исправить.

В файле filemanager.config.php есть функция auth(), предотвращающая несанкционированное использование FileManager. Я не знаю, как реализовать эту функцию, чтобы разрешить ее использование ТОЛЬКО администратору моего приложения. В моей пользовательской таблице я использую group_id для классификации пользователей, а administrators group_id — это 1.

Я думал о _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;
}

Он отлично работает как таковой.

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


person AKKAweb    schedule 25.03.2012    source источник


Ответы (1)


Код, который вы показываете, взят из fceditor? Если вы правильно настроили аутентификацию в CakePHP и не изменили ключ сеанса по умолчанию, ваши пользовательские данные будут находиться в $_SESSIOn['Auth']['User'].

В CakePHP не используйте $_SESSION напрямую, используйте компонент Session.

person floriank    schedule 25.03.2012
comment
Фиксированный. Ваш ответ дал мне подсказку и направил меня в правильном направлении к моему решению. Во-первых, я использовал базу данных для хранения своих сеансов, а во-вторых, код $_SESSION был неправильным. Смотрите мой РЕДАКТИРОВАТЬ. БЛАГОДАРНОСТЬ! - person AKKAweb; 25.03.2012
comment
Добро пожаловать. :) Вы также можете настроить CakePHP для использования базы данных для сессий. Он поставляется с поддержкой сеансов на основе php, файлов и баз данных, и вы можете расширить его до всего, что вам нужно. Также проверьте компонент аутентификации CakePHP. - person floriank; 25.03.2012
comment
Да, я знал об этом. Я временно переключил его обратно на php, пока не создам функцию, которая проверяет cake_session на наличие информации, необходимой мне для разрешения использования FileManager. - person AKKAweb; 26.03.2012