File "writeShareHtaccessFiles.php"

Full Path: /home/analogde/www/filetypes/pxsf/writeShareHtaccessFiles.php
File size: 3.39 KB
MIME-type: text/x-php
Charset: utf-8

<?php

if(!isset($PXP_dir))
	die("Script cannot be run separately.");

$ws_shares = Array();
$wsArr_basedir = Array();
$wsArr_create_htaccess = Array();
$wsArr_share_users = Array();
$wsArr_share_roles = Array();


$pxsf = $PXP_dir . "/shares.pxsf";
$d = dir($pxsf);
while($file = $d->read())
	if($file != "." and $file != "..")
		if(is_dir($pxsf . "/" . $file))
			array_push($ws_shares, $file);


# import existing shares
$PXP_onlyReadValues = true;
foreach($ws_shares as $ws_share){

	require($PXP_dir . "/shares.pxsf/" . $ws_share . "/config." . $ws_share . ".pxs.php");
	
	$wsArr_basedir[$ws_share] = $PXP_basedir;
	$wsArr_create_htaccess[$ws_share] = $PXP_create_htaccess;
	$wsArr_share_users[$ws_share] = $PXP_share_users;
	$wsArr_share_roles[$ws_share] = $PXP_share_roles;
}

$default_htaccess = implode("", file(dirname(__FILE__) . "/../htaccess/default.htaccess"));

foreach($ws_shares as $ws_share){
	if($ws_share != "system"){

		$new_htaccess_content = $default_htaccess;
		
		switch($wsArr_create_htaccess[$ws_share]){
			case 0:
				if(file_exists(str_replace("{@PXP_user_folder}", $PXP_user_folder, $wsArr_basedir[$ws_share]) . "/.htaccess"))
					unlink(str_replace("{@PXP_user_folder}", $PXP_user_folder, $wsArr_basedir[$ws_share]) . "/.htaccess");
			break;
			case 1:
				if(sizeof($wsArr_share_users[$ws_share]) > 0 or sizeof($wsArr_share_roles[$ws_share]) > 0){
				
					$new_htaccess_content = str_replace("{@AuthName}", "phpXplorer@" . $HTTP_SERVER_VARS["HTTP_HOST"], $new_htaccess_content);	
					$new_htaccess_content = str_replace("{@AuthUserFile}", $PXP_dir . "/.htpasswd", $new_htaccess_content);
					$new_htaccess_content = str_replace("{@AuthGroupFile}", $PXP_dir . "/.htgroups", $new_htaccess_content);
					
					if(sizeof($wsArr_share_users[$ws_share]) > 0){
						$new_htaccess_content = str_replace("{@Require users}", implode(" ", $wsArr_share_users[$ws_share]) . (in_array("root", $wsArr_share_users[$ws_share]) ? "" : " root"), $new_htaccess_content);
					}else{
						$new_htaccess_content = str_replace("{@Require users}", "root", $new_htaccess_content);
					}

					if(sizeof($wsArr_share_roles[$ws_share]) > 0){
						$new_htaccess_content = str_replace("{@Require groups}", implode(" ", $wsArr_share_roles[$ws_share]) . (in_array("administrators", $wsArr_share_roles[$ws_share]) ? "" : " administrators"), $new_htaccess_content);
					}else{
						$new_htaccess_content = str_replace("Require group {@Require groups}", "", $new_htaccess_content);
					}
					
					$handle = fopen(str_replace("{@PXP_user_folder}", $PXP_user_folder, $wsArr_basedir[$ws_share]) . "/.htaccess", "w");
					fwrite($handle, $new_htaccess_content);
					fclose($handle);
				}
			break;
			case 2:		
				$new_htaccess_content = str_replace("{@AuthName}", "phpXplorer@" . $HTTP_SERVER_VARS["HTTP_HOST"], $new_htaccess_content);
				$new_htaccess_content = str_replace("{@AuthUserFile}", $PXP_dir . "/.htpasswd", $new_htaccess_content);
				$new_htaccess_content = str_replace("{@AuthGroupFile}", $PXP_dir . "/.htgroups", $new_htaccess_content);

				$new_htaccess_content = str_replace("{@Require users}", "root", $new_htaccess_content);
				$new_htaccess_content = str_replace("Require group {@Require groups}", "", $new_htaccess_content);

				$handle = fopen(str_replace("{@PXP_user_folder}", $PXP_user_folder, $wsArr_basedir[$ws_share]) . "/.htaccess", "w");
				fwrite($handle, $new_htaccess_content);
				fclose($handle);
			break;
		}
	}
}
?>