provide os_mkdir to workaround permission issues with php mkdir

This commit is contained in:
friendica
2014-07-16 01:07:00 -07:00
parent 0435a08f3b
commit 3a31ddea2b
9 changed files with 60 additions and 9 deletions

View File

@@ -579,7 +579,7 @@ function attach_mkdir($channel, $observer_hash, $arr = null) {
logger('attach_mkdir: basepath: ' . $basepath);
if(! is_dir($basepath))
mkdir($basepath,STORAGE_DEFAULT_PERMISSIONS, true);
os_mkdir($basepath,STORAGE_DEFAULT_PERMISSIONS, true);
if(! perm_is_allowed($channel_id, $observer_hash, 'write_storage')) {
$ret['message'] = t('Permission denied.');
@@ -665,7 +665,7 @@ function attach_mkdir($channel, $observer_hash, $arr = null) {
);
if($r) {
if(mkdir($path, STORAGE_DEFAULT_PERMISSIONS, true)) {
if(os_mkdir($path, STORAGE_DEFAULT_PERMISSIONS, true)) {
$ret['success'] = true;
$ret['data'] = $arr;

View File

@@ -96,7 +96,7 @@ function change_channel($change_channel) {
get_app()->set_perms(get_all_perms(local_user(),$hash));
}
if(! is_dir('store/' . $r[0]['channel_address']))
@mkdir('store/' . $r[0]['channel_address'], STORAGE_DEFAULT_PERMISSIONS,true);
@os_mkdir('store/' . $r[0]['channel_address'], STORAGE_DEFAULT_PERMISSIONS,true);
}

View File

@@ -49,8 +49,12 @@ class FriendicaSmartyEngine implements ITemplateEngine {
public function __construct(){
$a = get_app();
// Cannot use get_config() here because it is called during installation when there is no DB.
// FIXME: this may leak private information such as system pathnames.
$basecompiledir = ((array_key_exists('smarty3_folder',$a->config['system'])) ? $a->config['system']['smarty3_folder'] : '');
if (!$basecompiledir) $basecompiledir = dirname(__dir__)."/store/[data]/smarty3";
if (!$basecompiledir) $basecompiledir = dirname(__dir__) . "/" . TEMPLATE_BUILD_PATH;
if (!is_dir($basecompiledir)) {
echo "<b>ERROR:</b> folder <tt>$basecompiledir</tt> does not exist."; killme();
}