/home/arranoyd/magicraft/wp-content/plugins/file-manager/php/connector.php
<?php
defined('ABSPATH') or die("Cannot access pages directly."); 
error_reporting(0); // Set E_ALL for debuging
//error_reporting(E_ALL | E_STRICT); // Set E_ALL for debuging

ini_set('max_file_uploads', '50');   // allow uploading up to 50 files at once
ini_set("upload_max_filesize","9G");

// needed for case insensitive search to work, due to broken UTF-8 support in PHP
ini_set('mbstring.internal_encoding', 'UTF-8');
ini_set('mbstring.func_overload', 2);

if (function_exists('date_default_timezone_set')) {
	date_default_timezone_set('Europe/Moscow');
}

$front_access = 0;
if(isset($_GET["front"])){
	$front_access = 1;
}	


	global $wpdb;
	require_once( dirname( dirname(__FILE__) ) . DIRECTORY_SEPARATOR . 'settings.php');


//logged in and non-logged in users
if(is_user_logged_in()){


 $red_current_user = wp_get_current_user();
 $red_current_id = $red_current_user->ID;
  $red_fm_role = reset($red_current_user->roles);
  $allow_default_folders = get_option("red_fm_create_default_folders");



//defaults and access_all comes from shortcode

  $defaults = 0;
if(isset($_GET["defaults"])){
	$defaults = $_GET["defaults"];
}

$access_all = 0;
if(isset($access_all)){
	$access_all = $_GET["access_all"];
}


 if($front_access == 0){

	   $query = "SELECT * FROM `" . $table_name . "` WHERE `type` = '$red_current_id' OR `type` = '$red_fm_role' ";

	   if($allow_default_folders == 0){
	   		$query = "SELECT * FROM `" . $table_name . "` WHERE (`type` = '$red_current_id' OR `type` = '$red_fm_role') AND `meta` <> 'red_fm_default'  ";
	   }

	   $results = $wpdb->get_results($query);

  }else{
  		$fid = $_GET["fid"];

  		if($defaults == 0){
  	   		$query = "SELECT * FROM `" . $table_name . "` WHERE (`id` = '$fid') AND  ( `meta` = 'Everyone' OR `meta` = '$red_fm_role' )  ";
	   }else{

	   		$query = "SELECT * FROM `" . $table_name . "` WHERE `type` = '$red_current_id' AND `meta` = 'red_fm_default'  ";
	   		if($allow_default_folders == '0'){
	   				$query = "";
	   		}	
	   }

	   if($access_all == 1){
	   		$query = "SELECT * FROM `" . $table_name . "` WHERE `type` = '$red_current_id' OR `type` = '$red_fm_role' ";
	   		if($allow_default_folders == 0){
	   			$query = "SELECT * FROM `" . $table_name . "` WHERE (`type` = '$red_current_id' OR `type` = '$red_fm_role') AND `meta` <> 'red_fm_default' ";
	   		}

	   }	
	 
	   $results = $wpdb->get_results($query);
  }



}else{//not logged in

		$fid = $_GET["fid"];
		
 $red_fm_role = "Everyone";
 $query = "SELECT * FROM `" . $table_name . "` WHERE `meta` = '$red_fm_role' AND `id` = '$fid' ";
 $results = $wpdb->get_results($query);

}


include_once dirname(__FILE__).DIRECTORY_SEPARATOR.'elFinderConnector.class.php';
include_once dirname(__FILE__).DIRECTORY_SEPARATOR.'elFinder.class.php';
include_once dirname(__FILE__).DIRECTORY_SEPARATOR.'elFinderVolumeDriver.class.php';
include_once dirname(__FILE__).DIRECTORY_SEPARATOR.'elFinderVolumeLocalFileSystem.class.php';
// Required for MySQL storage connector
// include_once dirname(__FILE__).DIRECTORY_SEPARATOR.'elFinderVolumeMySQL.class.php';
// Required for FTP connector support
// include_once dirname(__FILE__).DIRECTORY_SEPARATOR.'elFinderVolumeFTP.class.php';

//make opts array

$disabled = array();
$opts = array();
		$read = true;
		$write = false;
		$locked = false;

foreach ($results as $key => $value) {
	
	if($value->access == "r"){
		$read = true;
		$write = false;
		$locked = false;
		$disabled = array("rm", "rename");

	}elseif($value->access == "rw"){
		$read = true;
		$write = true;
		$locked = false;
		$disabled = array();

	}

	$this_url = site_url() ."/". red_getFolderName( $value->folder, $directory_temp);

	if($value->folder == "/"){
		$this_url = site_url();
		$value->folder = $directory_temp;
	}

	$opts["roots"][] = array(
							
									'driver' 				=> 'LocalFileSystem',
									'path'   				=> $value->folder,
									'URL'    				=> $this_url,
									'uploadAllow' 			=> array('all'),
									'uploadOrder'			=> array( 'allow', 'deny' ),
								    'defaults'    			 => array( 
														        'read'   => $read,
														        'write'  => $write,
														        'rm'     => $write
														        
														    	),
								    'disabled'				=> $disabled,


					                'attributes' 			=> array(                
																   array(
																			 'pattern' => '/.tmb/',
																			 'read' => false,
																			 'write' => false,
																			 'hidden' => true,
																			 'locked' => false
																			),
																	array(
													          			   'pattern' => '/.quarantine/',
													         				'read' => false,
													         				'write' => false,
													         				'hidden' => true,
													         				'locked' => false
													    				)


																)

									

						);
}//end of foreach


//header('Access-Control-Allow-Origin: *');
$connector = new elFinderConnector(new elFinder($opts));
$connector->run();

exit();