- don't create absolut paths additionally as relative paths in customers docroot, fixes #259
This commit is contained in:
@@ -27,6 +27,7 @@
|
|||||||
* @param int The uid of the user
|
* @param int The uid of the user
|
||||||
* @param int The gid of the user
|
* @param int The gid of the user
|
||||||
* @param bool Place standard-index.html into the new folder
|
* @param bool Place standard-index.html into the new folder
|
||||||
|
* @param bool Allow creating a directory out of the customers docroot
|
||||||
*
|
*
|
||||||
* @return bool true if everything went okay, false if something went wrong
|
* @return bool true if everything went okay, false if something went wrong
|
||||||
*
|
*
|
||||||
@@ -34,7 +35,7 @@
|
|||||||
* @author Martin Burchert <martin.burchert@syscp.org>
|
* @author Martin Burchert <martin.burchert@syscp.org>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function mkDirWithCorrectOwnership($homeDir, $dirToCreate, $uid, $gid, $placeindex = false)
|
function mkDirWithCorrectOwnership($homeDir, $dirToCreate, $uid, $gid, $placeindex = false, $allow_notwithinhomedir = false)
|
||||||
{
|
{
|
||||||
$returncode = true;
|
$returncode = true;
|
||||||
|
|
||||||
@@ -47,24 +48,33 @@ function mkDirWithCorrectOwnership($homeDir, $dirToCreate, $uid, $gid, $placeind
|
|||||||
if(substr($dirToCreate, 0, strlen($homeDir)) == $homeDir)
|
if(substr($dirToCreate, 0, strlen($homeDir)) == $homeDir)
|
||||||
{
|
{
|
||||||
$subdir = substr($dirToCreate, strlen($homeDir));
|
$subdir = substr($dirToCreate, strlen($homeDir));
|
||||||
|
$within_homedir = true;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$subdir = $dirToCreate;
|
$subdir = $dirToCreate;
|
||||||
|
$within_homedir = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
$subdir = makeCorrectDir($subdir);
|
$subdir = makeCorrectDir($subdir);
|
||||||
$subdirlen = strlen($subdir);
|
$subdirs = array();
|
||||||
$subdirs = array();
|
|
||||||
array_push($subdirs, $dirToCreate);
|
|
||||||
$offset = 0;
|
|
||||||
|
|
||||||
while($offset < $subdirlen)
|
if($within_homedir || !$allow_notwithinhomedir)
|
||||||
{
|
{
|
||||||
$offset = strpos($subdir, '/', $offset);
|
$subdirlen = strlen($subdir);
|
||||||
$subdirelem = substr($subdir, 0, $offset);
|
$offset = 0;
|
||||||
$offset++;
|
|
||||||
array_push($subdirs, makeCorrectDir($homeDir . $subdirelem));
|
while($offset < $subdirlen)
|
||||||
|
{
|
||||||
|
$offset = strpos($subdir, '/', $offset);
|
||||||
|
$subdirelem = substr($subdir, 0, $offset);
|
||||||
|
$offset++;
|
||||||
|
array_push($subdirs, makeCorrectDir($homeDir . $subdirelem));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
array_push($subdirs, $dirToCreate);
|
||||||
}
|
}
|
||||||
|
|
||||||
$subdirs = array_unique($subdirs);
|
$subdirs = array_unique($subdirs);
|
||||||
|
|||||||
@@ -677,7 +677,7 @@ class apache
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
mkDirWithCorrectOwnership($domain['customerroot'], $domain['documentroot'], $domain['guid'], $domain['guid'], true);
|
mkDirWithCorrectOwnership($domain['customerroot'], $domain['documentroot'], $domain['guid'], $domain['guid'], true, true);
|
||||||
$vhost_content.= $this->getWebroot($domain);
|
$vhost_content.= $this->getWebroot($domain);
|
||||||
$vhost_content.= $this->composePhpOptions($domain);
|
$vhost_content.= $this->composePhpOptions($domain);
|
||||||
$vhost_content.= $this->getStats($domain);
|
$vhost_content.= $this->getStats($domain);
|
||||||
|
|||||||
@@ -368,7 +368,7 @@ class lighttpd
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
mkDirWithCorrectOwnership($domain['customerroot'], $domain['documentroot'], $domain['guid'], $domain['guid'], true);
|
mkDirWithCorrectOwnership($domain['customerroot'], $domain['documentroot'], $domain['guid'], $domain['guid'], true, true);
|
||||||
|
|
||||||
$vhost_content.= $this->getWebroot($domain, $ssl_vhost);
|
$vhost_content.= $this->getWebroot($domain, $ssl_vhost);
|
||||||
$vhost_content.= $this->create_htaccess($domain);
|
$vhost_content.= $this->create_htaccess($domain);
|
||||||
|
|||||||
Reference in New Issue
Block a user