X-Git-Url: http://git.cyclocoop.org/?p=velocampus%2Fweb%2Fwww.git;a=blobdiff_plain;f=www%2Fecrire%2Finstall%2Fetape_chmod.php;fp=www%2Fecrire%2Finstall%2Fetape_chmod.php;h=6d7112adab87e69775a1e47f0a73cc236a6470cd;hp=0000000000000000000000000000000000000000;hb=80b4d3e85f78d402ed2e73f8f5d1bf4c19962eed;hpb=aaf970bf4cdaf76689ecc10609048e18d073820c diff --git a/www/ecrire/install/etape_chmod.php b/www/ecrire/install/etape_chmod.php new file mode 100644 index 0000000..6d7112a --- /dev/null +++ b/www/ecrire/install/etape_chmod.php @@ -0,0 +1,145 @@ + 0 && $uid == $uid2 && @fileowner('test') == $uid) + $chmod = 0700; + else if ($gid > 0 && $gid == $gid2 && @filegroup('test') == $gid) + $chmod = 0770; + else + $chmod = 0777; + // Appliquer de plus les droits d'acces du script + if ($perms > 0) { + $perms = ($perms & 0777) | (($perms & 0444) >> 2); + $chmod |= $perms; + } + spip_unlink('test'); + } + // Verifier que les valeurs sont correctes + $f = @fopen($my_dir.'test.php', 'w'); + if ($f) { + @fputs($f, '<'.'?php $ok = true; ?'.'>'); + @fclose($f); + @chmod($my_dir.'test.php', $chmod); + include($my_dir.'test.php'); + } + spip_unlink($my_dir.'test.php'); + return $ok?$chmod:false; +} + +// +// tester les droits en ecriture sur les repertoires +// rajouter celui passe dans l'url ou celui du source (a l'installation) +// + +// http://doc.spip.org/@install_etape_chmod_dist +function install_etape_chmod_dist() +{ + global $test_dirs; + $test_dir = _request('test_dir'); + $chmod = 0; + + if ($test_dir) { + if (substr($test_dir,-1)!=='/') $test_dir .= '/'; + if (!in_array($test_dir, $test_dirs)) $test_dirs[] = _DIR_RACINE . $test_dir; + } else { + if (!_FILE_CONNECT) { + $test_dirs[] = _DIR_CONNECT; + $test_dirs[] = _DIR_CHMOD; + } + } + + $bad_dirs = array(); + $absent_dirs = array();; + + while (list(, $my_dir) = each($test_dirs)) { + $test = test_ecrire($my_dir); + if (!$test) { + $m = preg_replace(',^' . _DIR_RACINE . ',', '',$my_dir); + if (@file_exists($my_dir)) { + $bad_dirs["
  • ".$m."
  • "] = 1; + } else + $absent_dirs["
  • ".$m."
  • "] = 1; + } else $chmod = max($chmod, $test); + } + + if ($bad_dirs OR $absent_dirs) { + + if (!_FILE_CONNECT) { + $titre = _T('dirs_preliminaire'); + $continuer = ' '._T('dirs_commencer') . '.'; + } else + $titre = _T('dirs_probleme_droits'); + + + $res = "
    ". menu_langues('var_lang_ecrire')."
    \n"; + + if ($bad_dirs) { + $res .= + _T('dirs_repertoires_suivants', + array('bad_dirs' => join("\n", array_keys($bad_dirs)))) . + "". _T('login_recharger')."."; + } + + if ($absent_dirs) { + $res .= + _T('dirs_repertoires_absents', + array('bad_dirs' => join("\n", array_keys($absent_dirs)))) . + "". _T('login_recharger')."."; + } + $res = "

    " . $continuer . $res . aide ("install0") . "

    "; + + $t = _T('login_recharger'); + $t = (!$test_dir ? "" : + "") + . "" + . "
    "; + + echo minipres($titre, $res . generer_form_ecrire('install', $t)); + + } else { + $deja = (_FILE_CONNECT AND analyse_fichier_connection(_FILE_CONNECT)); + if (!$deja) + redirige_url_ecrire("install", "etape=1&chmod=".$chmod); + else redirige_url_ecrire(); + } +} +?>