2012-03-25 1 views
1

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

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

В файле 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; 
    } 
} 

Заранее благодарю вас за помощь.

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

EDIT

Я имел вся установка неправильная

  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

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

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

+0

Исправлено. Ваш ответ дал мне подсказку и поставил меня в правильном направлении к моему решению. Во-первых, я использовал базу данных для хранения своих сеансов, а во-вторых, код $ _SSIONSION был неправильным. См. Мой EDIT. БЛАГОДАРЯ! –

+0

Добро пожаловать. :) Вы также можете настроить CakePHP для использования базы данных для сеансов. Он поставляется с поддержкой сеансов php, файлов и баз данных, и вы можете расширить его на все, что вам нужно. Также проверьте компонент CakePHP Auth. – burzum

+0

Да, я знал об этом. Я переключил его обратно на 'php' временно, пока не создам функцию, которая проверяет cake_session для информации, которую мне нужно, чтобы разрешить использование FileManager. –