Djenx.Explorer - закрываем доступ
Для проверки доступа добавил вызов обработчика на проверку.
Теперь в файле connector/php/index.php вы можете передать в класс Djenx_Explorer параметр allowFunction вызов которого должен вернуть boolean.
Пример:
function checkAllow_DjenxExplorer()
{
if (isset($_POST['PHPSESSID'])) {
session_id($_POST['PHPSESSID']);
}
if (session_start()) {
if (isset($_SESSION['admin']) && true === $_SESSION['admin']) {
return true;
}
}
return false;
}
require_once dirname(__FILE__) . '/library/Djenx/Explorer.php';
$djenxExplorer = new Djenx_Explorer(array(
'allowFunction' => 'checkAllow_DjenxExplorer',
));
В данном случае мы передали в allowFunction чтобы при инициализации вызывалась функция checkAllow_DjenxExplorer(), которая в свою очередь проверяет в сессии наличие переменной admin, вы в свою очередь можете делать какую угодно проверку.
Важным моментом является следующее, так как есть проблема с идентификацией данных отправленных через флэш, я добавил возможность передавать свои данные для работы эксплорера, для этого вам необходимо в момент инициализации редактора и эксплорера передавать переменную post в которой указаны куки или идентификатор сессии(может быть какой-то свой уникальный ключ).
DjenxExplorer.init({
returnTo: CKEDITOR.replace('editor'),
post: {
'PHPSESSID': '<?php echo session_id(); ?>'
}
});
Данные как видно из примера, будут переданны в обычном режиме ключ=значение
Не получается подключить проверку.
После подключения (добавления функции проверки в класс) дерево каталогов не грузится.
> я добавил возможность передавать свои данные...
> вам необходимо в момент инициализации редактора
а как быть в том случае, когда эксплорер грузится standalone через frame?
@Crutis
В этом случае передавать напрямую в URL
Пример:
http://sitename.ru/demos/Djenx.Explorer/index.html?type=file&returnTo=function&post={PHPSESSID:jfpa7d1qchrngtdu4g966f42k7}&path=/demos/Djenx.Explorer&connector=php
@Demphest
Ты только забыл упомянуть о том, что еще надо навешивать проверку на саму загрузку изображений. После того как проходит проверка доступа к самому ф-менеджеру, дерево отображается корректно, но он не дает загружать изображения (По техническим причинам, загрузка не удалась: file.jpg).
Я уже сделал этот момент, но странно что никто больше не писал об этом - либо лень, либо безопасность не многих волнует.