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

@ -1168,6 +1168,15 @@ function absurl($path) {
return $path;
}
function os_mkdir($path,$mode = 0777,$recursive = false) {
$oldumask = @umask(0);
@mkdir($path, $mode, $recursive);
@umask($oldumask);
}
function is_ajax() {
return (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest');
}

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();
}

View File

@ -995,7 +995,7 @@ ADD INDEX ( `menu_flags` )");
}
function update_r1091() {
@mkdir('store/[data]/smarty3',STORAGE_DEFAULT_PERMISSIONS,true);
@os_mkdir('store/[data]/smarty3',STORAGE_DEFAULT_PERMISSIONS,true);
@file_put_contents('store/[data]/locks','');
return UPDATE_SUCCESS;
}
@ -1301,6 +1301,6 @@ function update_r1115() {
}
function update_r1116() {
@mkdir('store/[data]/smarty3',STORAGE_DEFAULT_PERMISSIONS,true);
@os_mkdir('store/[data]/smarty3',STORAGE_DEFAULT_PERMISSIONS,true);
return UPDATE_SUCCESS;
}

View File

@ -27,6 +27,44 @@ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
function REDITOR(elm,wysiwyg) {
this.elm = elm;
this.wysiwyg = wysiwyg;
}
REDITOR.prototype.showEditor = function() {
if (! this.enableWysiwyg) return;
this.editorVisible = true;
this.content = document.getElementById(this.body_id).value;
this.myeditor = this.ifm.contentWindow.document;
bbcode2html();
this.myeditor.designMode = "on";
this.myeditor.open();
this.myeditor.write('<html><head><link href="editor.css" rel="Stylesheet" type="text/css" /></head>');
this.myeditor.write('<body style="margin:0px 0px 0px 0px" class="editorWYSIWYG">');
this.myeditor.write(content);
this.myeditor.write('</body></html>');
this.myeditor.close();
if (this.myeditor.attachEvent) {
if(parent.ProcessKeyPress)
this.myeditor.attachEvent("onkeydown", parent.ProcessKeyPress);
this.myeditor.attachEvent("onkeypress", kp);
}
else if (this.myeditor.addEventListener) {
if (parent.ProcessKeyPress)
this.myeditor.addEventListener("keydown", parent.ProcessKeyPress, true);
this.myeditor.addEventListener("keypress",kp,true);
}
}
var myeditor, ifm;
var body_id, textboxelement;
var content;

View File

@ -37,7 +37,7 @@ function cloud_init(&$a) {
require_once('include/reddav.php');
if(! is_dir('store'))
mkdir('store',STORAGE_DEFAULT_PERMISSIONS,false);
os_mkdir('store',STORAGE_DEFAULT_PERMISSIONS,false);
$which = null;
if(argc() > 1)

View File

@ -527,7 +527,7 @@ function check_store(&$checks) {
$status = true;
$help = "";
@mkdir('store',STORAGE_DEFAULT_PERMISSIONS);
@os_mkdir('store',STORAGE_DEFAULT_PERMISSIONS);
if( !is_writable('store') ) {

View File

@ -1 +1 @@
2014-07-15.737
2014-07-16.738