This commit is contained in:
2018-10-17 11:14:36 +03:00
parent 75a35947e5
commit 04d60d7e2c
2716 changed files with 431449 additions and 0 deletions
+4
View File
@@ -0,0 +1,4 @@
<Files *>
Order allow,deny
Deny from all
</Files>
+43
View File
@@ -0,0 +1,43 @@
<?php namespace kcfinder\cms;
/** This file is part of KCFinder project
*
* @desc CMS integration code: BolmerCMS
* @package KCFinder
* @version 3.12
* @author Borisov Evgeniy <modx@agel-nash.ru>
* @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
*/
class BolmerCMS{
protected static $authenticated = false;
static function checkAuth() {
$current_cwd = getcwd();
if ( ! self::$authenticated) {
define('BOLMER_API_MODE', true);
define('IN_MANAGER_MODE', true);
$init = realpath(dirname(dirname(dirname(dirname(dirname(dirname(__FILE__))))))."/index.php");
include_once($init);
$type = getService('user', true)->getLoginUserType();
if($type=='manager'){
self::$authenticated = true;
if (!isset($_SESSION['KCFINDER'])) {
$_SESSION['KCFINDER'] = array();
}
if(!isset($_SESSION['KCFINDER']['disabled'])) {
$_SESSION['KCFINDER']['disabled'] = false;
}
$_SESSION['KCFINDER']['_check4htaccess'] = false;
$_SESSION['KCFINDER']['uploadURL'] = '/assets/';
$_SESSION['KCFINDER']['uploadDir'] = BOLMER_BASE_PATH.'assets/';
$_SESSION['KCFINDER']['theme'] = 'default';
}
}
chdir($current_cwd);
return self::$authenticated;
}
}
\kcfinder\cms\BolmerCMS::checkAuth();
+111
View File
@@ -0,0 +1,111 @@
<?php
/** This file is part of KCFinder project
*
* @desc CMS integration code: Drupal
* @package KCFinder
* @version 3.12
* @author Dany Alejandro Cabrera <otello2040@gmail.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
*/
// gets a valid drupal_path
function get_drupal_path() {
if (!empty($_SERVER['SCRIPT_FILENAME'])) {
$drupal_path = dirname(dirname(dirname(dirname($_SERVER['SCRIPT_FILENAME']))));
if (!file_exists($drupal_path . '/includes/bootstrap.inc')) {
$drupal_path = dirname(dirname(dirname($_SERVER['SCRIPT_FILENAME'])));
$depth = 2;
do {
$drupal_path = dirname($drupal_path);
$depth++;
} while (!($bootstrap_file_found = file_exists($drupal_path . '/includes/bootstrap.inc')) && $depth < 10);
}
}
if (!isset($bootstrap_file_found) || !$bootstrap_file_found) {
$drupal_path = '../../../../..';
if (!file_exists($drupal_path . '/includes/bootstrap.inc')) {
$drupal_path = '../..';
do {
$drupal_path .= '/..';
$depth = substr_count($drupal_path, '..');
} while (!($bootstrap_file_found = file_exists($drupal_path . '/includes/bootstrap.inc')) && $depth < 10);
}
}
return $drupal_path;
}
function CheckAuthentication($drupal_path) {
static $authenticated;
if (!isset($authenticated)) {
if (!isset($bootstrap_file_found) || $bootstrap_file_found) {
$current_cwd = getcwd();
if (!defined('DRUPAL_ROOT')){
define('DRUPAL_ROOT', $drupal_path);
}
// Simulate being in the drupal root folder so we can share the session
chdir(DRUPAL_ROOT);
global $base_url;
$base_root = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') ? 'https' : 'http';
$base_url = $base_root .= '://'. preg_replace('/[^a-z0-9-:._]/i', '', $_SERVER['HTTP_HOST']);
if ($dir = trim(dirname($_SERVER['SCRIPT_NAME']), '\,/')) {
$base_path = "/$dir";
$base_url .= $base_path;
}
// correct base_url so it points to Drupal root
$pos = strpos($base_url, '/sites/');
$base_url = substr($base_url, 0, $pos); // drupal root absolute url
// If we aren't in a Drupal installation, or if Drupal path hasn't been properly found, die
if(!file_exists(DRUPAL_ROOT . '/includes/bootstrap.inc')) {
die("The CMS integration service for -drupal- requires KCFinder to be properly placed inside your Drupal installation.");
}
// bootstrap
require_once(DRUPAL_ROOT . '/includes/bootstrap.inc');
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
// if user has access permission...
if (user_access('access kcfinder')) {
if (!isset($_SESSION['KCFINDER'])) {
$_SESSION['KCFINDER'] = array();
$_SESSION['KCFINDER']['disabled'] = false;
}
// User has permission, so make sure KCFinder is not disabled!
if(!isset($_SESSION['KCFINDER']['disabled'])) {
$_SESSION['KCFINDER']['disabled'] = false;
}
global $user;
$_SESSION['KCFINDER']['uploadURL'] = strtr(variable_get('kcfinder_upload_url', 'sites/default/files/kcfinder'), array('%u' => $user->uid, '%n' => $user->name));
$_SESSION['KCFINDER']['uploadDir'] = strtr(variable_get('kcfinder_upload_dir', ''), array('%u' => $user->uid, '%n' => $user->name));
$_SESSION['KCFINDER']['theme'] = variable_get('kcfinder_theme', 'default');
//echo '<br />uploadURL: ' . $_SESSION['KCFINDER']['uploadURL']<br />;
//echo '<br />uploadDir: ' . $_SESSION['KCFINDER']['uploadDir']<br />;
chdir($current_cwd);
return true;
}
chdir($current_cwd);
return false;
}
}
}
CheckAuthentication(get_drupal_path());
@@ -0,0 +1,136 @@
<?php namespace kcfinder\integration;
/** This file is part of KCFinder project
*
* @desc Integration code: Laravel Administrator (https://github.com/FrozenNode/Laravel-Administrator)
* @package KCFinder
* @version 3.12
* @author Zsombor Franczia <zsombor.franczia@gmail.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
*/
class LaravelAdministrator {
protected static $authenticated = false;
protected static $bootstrapAutoload = '/bootstrap/autoload.php';
protected static $bootstrapStart = '/bootstrap/start.php';
static function getLaravelPath() {
//absolute path method
if (!empty($_SERVER['SCRIPT_FILENAME'])) {
$laravelPath = dirname(dirname(dirname(dirname(dirname(dirname(dirname(dirname($_SERVER['SCRIPT_FILENAME']))))))));
if (!file_exists($laravelPath . self::$bootstrapAutoload)) {
$laravelPath = dirname(dirname(dirname(dirname($_SERVER['SCRIPT_FILENAME']))));
$depth = 3;
do {
$laravelPath = dirname($laravelPath);
$depth++;
$autoloadFound = file_exists($laravelPath . self::$bootstrapAutoload);
} while (!$autoloadFound && $depth < 10);
}
else {
$autoloadFound = true;
}
}
//relative path method
if (!isset($autoloadFound) || !$autoloadFound) {
$laravelPath = '../../../../../../..';
if (!file_exists($laravelPath . self::$bootstrapAutoload)) {
$laravelPath = '../../..';
$depth = 3;
do {
$laravelPath .= '/..';
$depth++;
} while (!($autoloadFound = file_exists($laravelPath . self::$bootstrapAutoload)) && $depth < 10);
}
else {
$autoloadFound = true;
}
}
return $laravelPath;
}
static function runIntegration() {
$laravelPath = self::getLaravelPath();
if(file_exists($laravelPath . '/bootstrap/autoload.php')) {
$currentCwd = getcwd();
// Simulate being in the laravel root folder so we can share the session (is this really needed?)
// chdir($laravelPath);
// bootstrap
require $laravelPath.'/bootstrap/autoload.php';
$app = require_once $laravelPath.'/bootstrap/start.php';
$app->boot(); //Boot the application's service providers.
//get the admin check closure that should be supplied in the admin config
$permission = \Illuminate\Support\Facades\Config::get('administrator::administrator.permission');
$hasPermission = $permission();
self::$authenticated = $hasPermission;
//start session if not started already
if (session_id() == "") {
session_start();
$iStartedTheSession = true;
}
if (!isset($_SESSION['KCFINDER'])) {
$_SESSION['KCFINDER'] = array();
}
//if this is a simple true value, user is logged in
if ($hasPermission == true) {
$configFactory = \Illuminate\Support\Facades\App::make('admin_config_factory');
$modelName = \Illuminate\Support\Facades\Input::get('model');
$fieldName = \Illuminate\Support\Facades\Input::get('field');
if(!empty($modelName) && !empty($fieldName)) {
$modelConfig = $configFactory->make($modelName, true);
$modelConfigOptions = $modelConfig->getOption('edit_fields');
$kcfinderOptions = $modelConfigOptions[$fieldName]["kcfinder"];
//allow users to use an option called 'enabled' instead of 'disabled'
if(isset($kcfinderOptions["enabled"])) {
$kcfinderOptions["disabled"] = !$kcfinderOptions["enabled"];
}
//save all options to the session
foreach ($kcfinderOptions as $optKey => $optValue) {
$_SESSION['KCFINDER'][$optKey] = $optValue;
}
self::$authenticated = !$_SESSION['KCFINDER']['disabled'];
}
}
else {
//clean and reset the session variable
$_SESSION['KCFINDER'] = array();
}
//close the session if I started it
if (isset($iStartedTheSession)) {
session_write_close();
}
// chdir($currentCwd);
return self::$authenticated;
}
else {
die("The integration service for 'Laravel Administrator' failed. Laravel root path not found!");
}
}
}
\kcfinder\integration\LaravelAdministrator::runIntegration();