@nikitinnv

Как подружить LARAVEL + KCFINDER в ckeditor?

Всем привет!
Никак не могу закрыть доступ к KCFINDER для неавторизованных пользователей... Как только не пробовал.
Получается проверить авторизованность, передать ее значение при загрузке файлового менеджера, но менеджер использует аякс и такое ощущение, что он не использует в дальнейшем мои данные. В мануале указано, что нужно использовать сессию, но что-то KCFINDER не обращает на нее внимание (kcfinder.sunhater.com/integrate#session). Пробовал заводить сессию как через апи ларавел, так и обычно $_SESSION['KCFINDER']['disabled'] = false;

Буду признателен за наводку!

Вот мой файл kcfinder/conf/config.php

<?php

/** This file is part of KCFinder project
  *
  *      @desc Base configuration file
  *   @package KCFinder
  *   @version 3.12
  *    @author Pavel Tzonkov <sunhater@sunhater.com>
  * @copyright 2010-2014 KCFinder Project
  *   @license http://opensource.org/licenses/GPL-3.0 GPLv3
  *   @license http://opensource.org/licenses/LGPL-3.0 LGPLv3
  *      @link http://kcfinder.sunhater.com
  */

/* IMPORTANT!!! Do not comment or remove uncommented settings in this file
   even if you are using session configuration.
   See http://kcfinder.sunhater.com/install for setting descriptions */

/**
 * CHECK LARAVEL USER AUTH
 */
require '../../../../bootstrap/autoload.php';
$app = require '../../../../bootstrap/app.php';
$app->make('Illuminate\Contracts\Http\Kernel')->handle(Illuminate\Http\Request::capture());
$isAuthorized = Auth::check();


if(!$isAuthorized){

    Session::put('KCFINDER.disabled', 'false');

}else{

    Session::forget('KCFINDER');
}


//dd(phpinfo());

$_CONFIG = array(


// GENERAL SETTINGS

    'disabled' => true, // true or false
    'uploadURL' => "/upload",
    'uploadDir' => "",
    'theme' => "default",

    'types' => array(

    // (F)CKEditor types
        'files'   =>  "",
        'flash'   =>  "swf",
        'images'  =>  "*img",

    // TinyMCE types
        'file'    =>  "",
        'media'   =>  "swf flv avi mpg mpeg qt mov wmv asf rm",
        'image'   =>  "*img",
    ),


// IMAGE SETTINGS

    'imageDriversPriority' => "imagick gmagick gd",
    'jpegQuality' => 90,
    'thumbsDir' => ".thumbs",

    'maxImageWidth' => 0,
    'maxImageHeight' => 0,

    'thumbWidth' => 100,
    'thumbHeight' => 100,

    'watermark' => "",


// DISABLE / ENABLE SETTINGS

    'denyZipDownload' => false,
    'denyUpdateCheck' => false,
    'denyExtensionRename' => false,


// PERMISSION SETTINGS

    'dirPerms' => 0755,
    'filePerms' => 0644,

    'access' => array(

        'files' => array(
            'upload' => true,
            'delete' => true,
            'copy'   => true,
            'move'   => true,
            'rename' => true
        ),

        'dirs' => array(
            'create' => true,
            'delete' => true,
            'rename' => true
        )
    ),

    'deniedExts' => "exe com msi bat cgi pl php phps phtml php3 php4 php5 php6 py pyc pyo pcgi pcgi3 pcgi4 pcgi5 pchi6",


// MISC SETTINGS

    'filenameChangeChars' => array(/*
        ' ' => "_",
        ':' => "."
    */),

    'dirnameChangeChars' => array(/*
        ' ' => "_",
        ':' => "."
    */),

    'mime_magic' => "",

    'cookieDomain' => "",
    'cookiePath' => "",
    'cookiePrefix' => 'KCFINDER_',


// THE FOLLOWING SETTINGS CANNOT BE OVERRIDED WITH SESSION SETTINGS

    '_normalizeFilenames' => false,
    '_check4htaccess' => true,
    //'_tinyMCEPath' => "/tiny_mce",

    '_sessionVar' => "KCFINDER",
    //'_sessionLifetime' => 30,
    '_sessionDir' => "/var/www/manager/data/mod-tmp",
    //'_sessionDomain' => ".mysite.com",
    //'_sessionPath' => "/my/path",

    //'_cssMinCmd' => "java -jar /path/to/yuicompressor.jar --type css {file}",
    //'_jsMinCmd' => "java -jar /path/to/yuicompressor.jar --type js {file}",

);


?>
  • Вопрос задан
  • 1647 просмотров
Решения вопроса 1
@nikitinnv Автор вопроса
Видимо я перемудрил сам)
Когда с чистой головой сел опять за этот кусок кода, очистил куки и сессию, то все заработало с таким простым вариантом, может кому пригодится:
/**
 * CHECK LARAVEL USER AUTH
 */
require '../../../../bootstrap/autoload.php';
$app = require '../../../../bootstrap/app.php';
$app->make('Illuminate\Contracts\Http\Kernel')->handle(Illuminate\Http\Request::capture());
$isAuthorized = Auth::check();


if($isAuthorized){
    session_start();
        $_SESSION['KCFINDER'] = array();
        $_SESSION['KCFINDER']['disabled'] = false;

}else{
    if(isset($_SESSION['KCFINDER'])){
        unset($_SESSION['KCFINDER']);
    }
}


$_CONFIG = array(


// GENERAL SETTINGS

    'disabled' => true,
.....
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@oldpunk
Этот вариант не работает с post запросами. Для исправления этого надо немного его изменить.
$request = Illuminate\Http\Request::capture();
$request->setMethod('GET');
$app->make('Illuminate\Contracts\Http\Kernel')->handle($request);
$isAuthorized = Auth::check();
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы