Merged changesets 2970, 2972, 2984, 2986, 2987 and 2988 from branch stable 1.0 to trunk.
This commit is contained in:
parent
2015f21029
commit
60ab97c883
|
@ -230,8 +230,6 @@ bureau/admin/js/jquery_ui/js/jquery.ui.datepicker-es.js -text
|
|||
bureau/admin/js/jquery_ui/js/jquery.ui.datepicker-fr.js -text
|
||||
bureau/admin/js/passwordStrengthMeter.js -text
|
||||
bureau/admin/js/prototype.js -text
|
||||
bureau/admin/js/rico.js -text
|
||||
bureau/admin/js/wz_dragdrop.js -text
|
||||
bureau/admin/login.php -text
|
||||
bureau/admin/logo.png -text
|
||||
bureau/admin/logo2.png -text
|
||||
|
|
|
@ -40,27 +40,37 @@ if ($cancel) {
|
|||
exit();
|
||||
}
|
||||
if ($saveret) {
|
||||
$bro->Save($editfile,$R,$texte);
|
||||
$error=sprintf(_("Your file %s has been saved"),$editfile)." (".format_date('%3$d-%2$d-%1$d %4$d:%5$d',date("Y-m-d H:i:s")).")";
|
||||
include("bro_main.php");
|
||||
exit();
|
||||
if ($bro->Save($editfile,$R,$texte)) {
|
||||
$error=sprintf(_("Your file %s has been saved"),$editfile)." (".format_date('%3$d-%2$d-%1$d %4$d:%5$d',date("Y-m-d H:i:s")).")";
|
||||
} else {
|
||||
$error=$err->errstr();
|
||||
}
|
||||
include("bro_main.php");
|
||||
exit();
|
||||
}
|
||||
if ($save) {
|
||||
$bro->Save($editfile,$R,$texte);
|
||||
$error=sprintf(_("Your file %s has been saved"),$editfile)." (".format_date('%3$d-%2$d-%1$d %4$d:%5$d',date("Y-m-d H:i:s")).")";
|
||||
if ($bro->Save($editfile,$R,$texte)) {
|
||||
$error=sprintf(_("Your file %s has been saved"),$editfile)." (".format_date('%3$d-%2$d-%1$d %4$d:%5$d',date("Y-m-d H:i:s")).")";
|
||||
} else {
|
||||
$error=$err->errstr();
|
||||
}
|
||||
}
|
||||
|
||||
include_once("head.php");
|
||||
|
||||
?>
|
||||
<p>
|
||||
<?php if ($error) echo "<font color=\"red\">$error</font><br />"; ?>
|
||||
<?php if ($error) echo "<p class=\"error\">$error</p>"; ?>
|
||||
<?php echo _("File editing")." <code>$R/<b>$editfile</b></code><br />"; ?>
|
||||
</p>
|
||||
<form action="bro_editor.php" method="post"><br />
|
||||
<div id="resizer" style="left: 0px; top: 0px; z-index: 54; width: <?php echo $p["editsizex"]*8; ?>px; height: <?php echo $p["editsizey"]*8; ?>px; cursor: auto;"><textarea class="int" style="font-family: <?php echo $p["editor_font"]; ?>; font-size: <?php echo $p["editor_size"]; ?>; width: 90%; height: 90%;" name="texte"><?php
|
||||
$bro->content($R,$editfile);
|
||||
?></textarea><img src="/admin/icon/winresize.gif" alt="<?php __("ctrl+click or shift+click and drag to resize the editing zone"); ?>" title="<?php __("ctrl+click or shift+click and drag to resize the editing zone"); ?>" height="20" width="20" /></div><br />
|
||||
$failed=false;
|
||||
if (!$bro->content($R,$editfile)) {
|
||||
$failed=true;
|
||||
}
|
||||
?></textarea>
|
||||
<?php if ($failed) echo "<p class=\"error\">".$err->errstr()."</p>"; ?>
|
||||
<input type="hidden" name="editfile" value="<?php echo str_replace("\"",""",$editfile); ?>" />
|
||||
<input type="hidden" name="R" value="<?php echo str_replace("\"",""",$R); ?>" />
|
||||
|
||||
|
@ -68,10 +78,5 @@ $bro->content($R,$editfile);
|
|||
<input type="submit" class="inb" value="<?php __("Save & Quit"); ?>" name="saveret" />
|
||||
<input type="submit" class="inb" value="<?php __("Quit"); ?>" name="cancel" />
|
||||
<br />
|
||||
<script type="text/javascript">
|
||||
<!--
|
||||
SET_DHTML("resizer"+RESIZABLE);
|
||||
//-->
|
||||
</script>
|
||||
</form>
|
||||
<?php include_once("foot.php"); ?>
|
||||
|
|
|
@ -97,16 +97,23 @@ if ($r['dns_action']=='UPDATE') {?>
|
|||
<tr><th colspan="2"> </th><th><?php __("Subdomain"); ?></th><th><?php __("Type");?></th><th><?php __("Status")?></th></tr>
|
||||
<?php
|
||||
$col=1;
|
||||
$dt=$dom->domains_type_lst();
|
||||
for($i=0;$i<$r["nsub"];$i++) {
|
||||
$col=3-$col;
|
||||
|
||||
?>
|
||||
<tr class="lst<?php echo $col; ?>">
|
||||
<?php if ( $r['sub'][$i]['web_action'] =='DELETE') { echo "<td colspan=2 />"; } else { ?>
|
||||
<td class="center">
|
||||
<?php if (!(!$isinvited && $dt[strtolower($r["sub"][$i]["type"])]["enable"] != "ALL" )) { ?>
|
||||
<div class="ina"><a href="dom_subedit.php?domain=<?php echo urlencode($r["name"]) ?>&sub=<?php echo urlencode($r["sub"][$i]["name"]) ?>&type=<?php echo urlencode($r["sub"][$i]["type"]) ?>&value=<?php echo urlencode($r["sub"][$i]['dest'])?>"><img src="images/edit.png" alt="<?php __("Edit"); ?>" /><?php __("Edit"); ?></a></div>
|
||||
<?php } ?>
|
||||
|
||||
|
||||
</td><td class="center">
|
||||
<?php if (!(!$isinvited && $dt[strtolower($r["sub"][$i]["type"])]["enable"] != "ALL" )) { ?>
|
||||
<div class="ina"><a href="dom_subdel.php?domain=<?php echo urlencode($r["name"]) ?>&sub=<?php echo urlencode($r["sub"][$i]["name"]) ?>&type=<?php echo urlencode($r["sub"][$i]["type"]) ?>&value=<?php echo urlencode($r["sub"][$i]['dest'])?>"><img src="images/delete.png" alt="<?php __("Delete"); ?>" /><?php __("Delete"); ?></a></div>
|
||||
<?php } ?>
|
||||
</td>
|
||||
<?php } // end IF ==DELETE ?>
|
||||
<td><a href="http://<?php ecif($r["sub"][$i]["name"],$r["sub"][$i]["name"]."."); echo $r["name"] ?>" target="_blank"><?php ecif($r["sub"][$i]["name"],$r["sub"][$i]["name"]."."); echo $r["name"] ?></a></td>
|
||||
|
@ -163,7 +170,6 @@ sub_domains_edit($domain);
|
|||
<br />
|
||||
<?php $mem->show_help("edit_domain"); ?>
|
||||
<p> </p>
|
||||
<p> </p>
|
||||
<!-- *****************************************
|
||||
modification des parametres dns
|
||||
-->
|
||||
|
@ -172,41 +178,38 @@ if (!$r['noerase']) {
|
|||
?>
|
||||
|
||||
<hr />
|
||||
<h3><?php __("DNS parameters"); ?></h3>
|
||||
<h3><?php __("DNS & Email parameters"); ?></h3>
|
||||
<form action="dom_editdns.php?domain=<?php echo urlencode($r["name"]) ?>" method="post" id="fdns" name="fdns">
|
||||
<table border="1" cellpadding="6" cellspacing="0">
|
||||
<tr><td colspan="2"><?php __("Manage the DNS on the server ?"); ?></td></tr>
|
||||
<tr>
|
||||
<td align="center" width="65%"><input type="radio" id="yesdns" class="inc" name="dns" value="1"<?php cbox($r["dns"]); ?> onclick="dnson();" /> <label for="yesdns"><?php __("Yes"); ?></label></td>
|
||||
<td align="center" width="35%"><input type="radio" id="nodns" class="inc" name="dns" value="0"<?php cbox(!$r["dns"]); ?> onclick="dnsoff();" /> <label for="nodns"><?php __("No"); ?></label></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="65%" valign="top">
|
||||
<p>
|
||||
<?php printf(_("help_dns_mx %s %s"),$L_MX,$L_HOSTING); ?>
|
||||
</p>
|
||||
<label for="mx"><?php __("MX Field"); ?> : </label><input type="text" class="int" name="mx" id="mx" value="<?php if ($r["dns"]) echo $r["mx"]; else echo $L_MX; ?>" <?php if (!$r["dns"]) echo "disabled=\"disabled\""; ?> />
|
||||
</td>
|
||||
<td width="35%" valign="top">
|
||||
<p>
|
||||
<?php __("help_dns_mail"); ?></p>
|
||||
<p>
|
||||
<input type="radio" id="emailon" class="inc" name="email" id="emailon" value="1"<?php cbox($r["mail"]); ?> <?php if ($r["dns"]) echo "disabled=\"disabled\""; ?>/><label for="emailon"><?php __("Yes"); ?></label>
|
||||
<br />
|
||||
<input type="radio" id="emailoff" class="inc" name="email" id="emailoff" value="0"<?php cbox(!$r["mail"]); ?> <?php if ($r["dns"]) echo "disabled=\"disabled\""; ?>/><label for="emailoff"><?php __("No"); ?></label>
|
||||
</p>
|
||||
<p> <?php __("Warning: If you set this to 'no', all your email accounts and aliases on this domain will be immediately deleted."); ?>
|
||||
</p>
|
||||
</td>
|
||||
|
||||
<table class="tlist">
|
||||
<tr>
|
||||
<td><?php __("Manage the DNS on the server ?"); ?></td>
|
||||
<td>
|
||||
<input type="radio" id="yesdns" class="inc" name="dns" value="1"<?php cbox($r["dns"]); ?> /> <label for="yesdns"><?php __("Yes"); ?></label>
|
||||
</td><td><input type="radio" id="nodns" class="inc" name="dns" value="0"<?php cbox(!$r["dns"]); ?> /> <label for="nodns"><?php __("No"); ?></label>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="trbtn"><td colspan="2"><input type="submit" class="inb" name="submit" value="<?php __("Submit the changes"); ?>" /></td></tr>
|
||||
</table>
|
||||
|
||||
<table class="tlist">
|
||||
<tr>
|
||||
<td>
|
||||
<?php __("Manage the Emails Addresses of this domain on the server?"); ?>
|
||||
</td>
|
||||
<td>
|
||||
<input type="radio" id="yesemail" class="inc" name="email" value="1"<?php cbox($r["mail"]); ?> /> <label for="yesemail"><?php __("Yes"); ?></label>
|
||||
</td><td><input type="radio" id="noemail" class="inc" name="email" value="0"<?php cbox(!$r["mail"]); ?> /> <label for="noemail"><?php __("No"); ?></label>
|
||||
</td>
|
||||
</table>
|
||||
<div style="padding-left: 30px; padding-bottom: 20px" class="error"> <?php __("Warning: If you set this to 'no', all your email accounts and aliases on this domain will be immediately deleted."); ?></div>
|
||||
|
||||
<input type="submit" class="inb" name="submit" value="<?php __("Submit the changes"); ?>" />
|
||||
</form>
|
||||
|
||||
<!-- *****************************************
|
||||
destruction du domaine
|
||||
-->
|
||||
<p> </p>
|
||||
<hr />
|
||||
<h3><?php __("Domain removal"); ?></h3>
|
||||
|
||||
<br />
|
||||
<?php printf(_("help_domain_del %s"),$domain); ?><br />
|
||||
<form action="dom_dodel.php?domain=<?php echo urlencode($domain) ?>" method="post">
|
||||
|
@ -214,6 +217,8 @@ if (!$r['noerase']) {
|
|||
<input type="submit" class="inb" name="detruire" value="<?php printf(_("Delete %s from this server"),$domain); ?>" />
|
||||
</p>
|
||||
</form>
|
||||
|
||||
<br />
|
||||
<hr />
|
||||
<?php } // noerase ?>
|
||||
<script type="text/javascript">
|
||||
|
|
|
@ -33,22 +33,13 @@ include_once("head.php");
|
|||
$fields = array (
|
||||
"domain" => array ("request", "string", ""),
|
||||
"dns" => array ("request", "integer", 1),
|
||||
"mx" => array ("request", "string", ""),
|
||||
"email" => array ("request", "integer", 0),
|
||||
"email" => array ("request", "integer", 1),
|
||||
);
|
||||
getFields($fields);
|
||||
|
||||
$dom->lock();
|
||||
if ($dns!="1") {
|
||||
// On fixe mx :
|
||||
if ($email=="1") {
|
||||
$mx=$L_MX;
|
||||
} else {
|
||||
$mx="";
|
||||
}
|
||||
}
|
||||
|
||||
if (!$dom->edit_domain($domain,$dns,$mx)) {
|
||||
if (!$dom->edit_domain($domain,$dns,$email)) {
|
||||
$error=$err->errstr();
|
||||
include("dom_edit.php");
|
||||
$dom->unlock();
|
||||
|
|
|
@ -38,12 +38,21 @@ $fields = array (
|
|||
);
|
||||
getFields($fields);
|
||||
|
||||
$dt=$dom->domains_type_lst();
|
||||
if (!$isinvited && $dt[strtolower($type)]["enable"] != "ALL" ) {
|
||||
__("This page is restricted to authorized staff");
|
||||
exit();
|
||||
}
|
||||
|
||||
|
||||
$dom->lock();
|
||||
if (!$r=$dom->get_sub_domain_all($domain,$sub,$type)) {
|
||||
$error=$err->errstr();
|
||||
}
|
||||
$dom->unlock();
|
||||
|
||||
|
||||
|
||||
?>
|
||||
<h3><?php printf(_("Deleting subdomain %s"),"http://".ife($sub,$sub.".").$domain); ?> : </h3>
|
||||
<?php
|
||||
|
|
|
@ -38,6 +38,13 @@ $fields = array (
|
|||
);
|
||||
getFields($fields);
|
||||
|
||||
$dt=$dom->domains_type_lst();
|
||||
if (!$isinvited && $dt[strtolower($type)]["enable"] != "ALL" ) {
|
||||
__("This page is restricted to authorized staff");
|
||||
exit();
|
||||
}
|
||||
|
||||
|
||||
$dom->lock();
|
||||
|
||||
if (!$dom->del_sub_domain($domain,$sub,$type,$value)) {
|
||||
|
|
|
@ -50,6 +50,14 @@ $value=$$dynamicvar;
|
|||
|
||||
$dom->lock();
|
||||
|
||||
$dt=$dom->domains_type_lst();
|
||||
if (!$isinvited && $dt[strtolower($type)]["enable"] != "ALL" ) {
|
||||
__("This page is restricted to authorized staff");
|
||||
exit();
|
||||
}
|
||||
|
||||
|
||||
|
||||
$r=$dom->set_sub_domain($domain,$sub,$type,$value, $type_old, $sub_old, $value_old);
|
||||
|
||||
$dom->unlock();
|
||||
|
|
|
@ -41,6 +41,14 @@ getFields($fields);
|
|||
|
||||
$dom->lock();
|
||||
$domroot=$dom->get_domain_all($domain);
|
||||
|
||||
$dt=$dom->domains_type_lst();
|
||||
if (!$isinvited && $dt[strtolower($type)]["enable"] != "ALL" ) {
|
||||
__("This page is restricted to authorized staff");
|
||||
exit();
|
||||
}
|
||||
|
||||
|
||||
if (!$noread) {
|
||||
if (!$r=$dom->get_sub_domain_all($domain,$sub,$type,$value)) {
|
||||
$error=$err->errstr();
|
||||
|
|
|
@ -38,7 +38,6 @@ if (!$charset) $charset="iso-8859-1";
|
|||
<link rel="stylesheet" href="styles/passwordStrengthMeter.css" type="text/css" />
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=<?php echo $charset; ?>" />
|
||||
<script type="text/javascript" src="js/alternc.js"></script>
|
||||
<script type="text/javascript" src="js/wz_dragdrop.js"></script>
|
||||
<script src="js/jquery.min.js" type="text/javascript"></script>
|
||||
<script src="js/jquery_ui/js/jquery-ui-1.8.10.custom.min.js" type="text/javascript"></script>
|
||||
<?php
|
||||
|
@ -52,7 +51,12 @@ if (file_exists($lang_date_picker))
|
|||
<body>
|
||||
<?
|
||||
$oldid=intval(isset($_COOKIE['oldid'])?$_COOKIE['oldid']:'');
|
||||
$isinvited=false;
|
||||
|
||||
if ($admin->enabled) $isinvited=true;
|
||||
|
||||
if ($oldid && $oldid!=$cuid) {
|
||||
$isinvited=true;
|
||||
echo "<div align=center><p class='error'>";
|
||||
__("Administrator session. you may <a href='adm_login.php'>return to your account</a> or <a href='adm_cancel.php'>cancel this feature</a>");
|
||||
echo "</p></div>";
|
||||
|
|
|
@ -47,7 +47,7 @@ else {
|
|||
}
|
||||
|
||||
if (!is_array($r)) {
|
||||
echo "<p><span class=\"ina\"<a href=\"hta_add.php\">"._("Protect a folder")."</a></span><br />";
|
||||
echo "<p><span class=\"ina\"><a href=\"hta_add.php\">"._("Protect a folder")."</a></span><br />";
|
||||
$mem->show_help("hta_list");
|
||||
echo "</p>";
|
||||
include_once("foot.php");
|
||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -27,8 +27,8 @@
|
|||
/**
|
||||
* Classe de gestion du navigateur de fichiers en ligne.
|
||||
*
|
||||
* Cette classe permet de gérer les fichiers, dossiers ...
|
||||
* d'un membre hébergé.<br />
|
||||
* Cette classe permet de grer les fichiers, dossiers ...
|
||||
* d'un membre hberg.<br />
|
||||
* Copyleft {@link http://alternc.net/ AlternC Team}
|
||||
*
|
||||
* @copyright AlternC-Team 2002-11-01 http://alternc.net/
|
||||
|
@ -41,13 +41,13 @@ class m_bro {
|
|||
/** Mode d'affichage des fichiers en colonne */
|
||||
var $l_mode=array(0=>"1 column, detailed",1=>"2 columns, short",2=>"3 columns, short");
|
||||
|
||||
/** Mode de téléchargement d'un dossier compressé (zip,bz,tar,..) */
|
||||
/** Mode de tlchargement d'un dossier compress (zip,bz,tar,..) */
|
||||
var $l_tgz=array(0=>"tgz (Linux)",1=>"tar.bz2 (Linux)",2=>"zip (Windows/Dos)",3=>"tar.Z (Unix)");
|
||||
|
||||
/** Faut-il afficher ou non les icones ? */
|
||||
var $l_icons=array(0=>"No",1=>"Yes");
|
||||
|
||||
/** Que fait-on après la création d'un fichier ? */
|
||||
/** Que fait-on aprs la cration d'un fichier ? */
|
||||
var $l_createfile=array(0=>"Go back to the file manager",1=>"Edit the newly created file");
|
||||
|
||||
/** Cache des descriptions de fichier extraits de la base
|
||||
|
@ -65,10 +65,10 @@ class m_bro {
|
|||
*/
|
||||
var $mime_type=array();
|
||||
|
||||
/** Choix des polices d'édition de fichiers */
|
||||
/** Choix des polices d'dition de fichiers */
|
||||
var $l_editor_font=array("Arial, Helvetica, Sans-serif","Times, Bookman, Serif","Courier New, Courier, Fixed");
|
||||
|
||||
/** Choix des tailles de police d'édition de fichiers */
|
||||
/** Choix des tailles de police d'dition de fichiers */
|
||||
var $l_editor_size=array("18px","14px","12px","10px","8px","0.8em","0.9em","1em","1.1em","1.2em");
|
||||
|
||||
/* ----------------------------------------------------------------- */
|
||||
|
@ -77,11 +77,11 @@ class m_bro {
|
|||
}
|
||||
|
||||
/* ----------------------------------------------------------------- */
|
||||
/** Vérifie un dossier relatif au dossier de l'utilisateur courant
|
||||
/** Vrifie un dossier relatif au dossier de l'utilisateur courant
|
||||
*
|
||||
* @param string $dir Dossier (absolu que l'on souhaite vérifier
|
||||
* @return string Retourne le nom du dossier vérifié, relatif au
|
||||
* dossier de l'utilisateur courant, éventuellement corrigé.
|
||||
* @param string $dir Dossier (absolu que l'on souhaite vrifier
|
||||
* @return string Retourne le nom du dossier vrifi, relatif au
|
||||
* dossier de l'utilisateur courant, ventuellement corrig.
|
||||
* ou FALSE si le dossier n'est pas dans le dossier de l'utilisateur.
|
||||
*/
|
||||
function convertabsolute($dir,$strip=1) {
|
||||
|
@ -89,7 +89,7 @@ class m_bro {
|
|||
$root=$this->get_user_root($mem->user["login"]);
|
||||
// Sauvegarde du chemin de base.
|
||||
$root_alternc = $root ;
|
||||
// Passage du root en chemin réel (différent avec un lien)
|
||||
// Passage du root en chemin rel (diffrent avec un lien)
|
||||
$root=realpath($root) ;
|
||||
// separer le chemin entre le repertoire et le fichier
|
||||
$file = basename($dir);
|
||||
|
@ -104,9 +104,9 @@ class m_bro {
|
|||
if ($strip) {
|
||||
$dir=substr($dir,strlen($root));
|
||||
} else {
|
||||
// si on ne strip pas, il faut enlever le chemin réel
|
||||
// et mettre la racine d'alternc pour éviter les
|
||||
// problèmes de lien depuis /var/alternc !
|
||||
// si on ne strip pas, il faut enlever le chemin rel
|
||||
// et mettre la racine d'alternc pour viter les
|
||||
// problmes de lien depuis /var/alternc !
|
||||
$dir=$root_alternc . substr($dir,strlen($root));
|
||||
}
|
||||
if (substr($dir,-1)=="/") {
|
||||
|
@ -148,11 +148,11 @@ class m_bro {
|
|||
|
||||
/* ----------------------------------------------------------------- */
|
||||
/** Retourne un tableau contenant la liste des fichiers du dossier courant
|
||||
* Ce tableau contient tous les paramètres des fichiers du dossier courant
|
||||
* sous la forme d'un tableau indexé de tableaux associatifs comme suit :
|
||||
* Ce tableau contient tous les paramtres des fichiers du dossier courant
|
||||
* sous la forme d'un tableau index de tableaux associatifs comme suit :
|
||||
* $a["name"]=nom du fichier / dossier
|
||||
* $a["size"]=Taille totale du fichier / dossier + sous-dossier
|
||||
* $a["date"]=Date de dernière modification
|
||||
* $a["date"]=Date de dernire modification
|
||||
* $a["type"]=Type du fichier (1 pour fichier, 0 pour dossier)
|
||||
* @param string $dir dossier relatif au dossier racine du compte du
|
||||
* membre courant
|
||||
|
@ -179,10 +179,10 @@ class m_bro {
|
|||
}
|
||||
|
||||
/* ----------------------------------------------------------------- */
|
||||
/** Retourne un tableau contenant les préférences de l'utilisateur courant
|
||||
/** Retourne un tableau contenant les prfrences de l'utilisateur courant
|
||||
* Ce tableau aqssociatif contient les valeurs des champs de la table "browser"
|
||||
* pour l'utilisateur courant.
|
||||
* @return array Tableau des préférences de l'utilisateur courant.
|
||||
* @return array Tableau des prfrences de l'utilisateur courant.
|
||||
*/
|
||||
function GetPrefs() {
|
||||
global $db,$cuid;
|
||||
|
@ -196,18 +196,18 @@ class m_bro {
|
|||
}
|
||||
|
||||
/* ----------------------------------------------------------------- */
|
||||
/** Modifie les préférences de l'utilisateur courant.
|
||||
/** Modifie les prfrences de l'utilisateur courant.
|
||||
*
|
||||
* @param integer $editsizex Taille de l'éditeur (nombre de colonnes)
|
||||
* @param integer $editsizey Taille de l'éditeur (nombre de lignes)
|
||||
* @param integer $editsizex Taille de l'diteur (nombre de colonnes)
|
||||
* @param integer $editsizey Taille de l'diteur (nombre de lignes)
|
||||
* @param integer $listmode Mode d'affichage de la liste des fichiers
|
||||
* @param integer $showicons Faut-il afficher / cacher les icones des fichiers
|
||||
* @param integer $downfmt Dans quel format faut-il télécharger les dossiers compressés
|
||||
* @param integer $createfile Faut-il editer/revenir au browser après création d'un fichier
|
||||
* @param integer $downfmt Dans quel format faut-il tlcharger les dossiers compresss
|
||||
* @param integer $createfile Faut-il editer/revenir au browser aprs cration d'un fichier
|
||||
* @param integer $showtype Faut-il afficher le type mime des fichiers
|
||||
* @param integer $editor_font Quelle police faut-il utiliser pour l'éditeur
|
||||
* @param integer $editor_size Quelle taille de police faut-il utiliser pour l'éditeur
|
||||
* @param integer $golastdir Faut-il revenir à la racine ou au dernier dossier visité ?
|
||||
* @param integer $editor_font Quelle police faut-il utiliser pour l'diteur
|
||||
* @param integer $editor_size Quelle taille de police faut-il utiliser pour l'diteur
|
||||
* @param integer $golastdir Faut-il revenir la racine ou au dernier dossier visit ?
|
||||
* @return boolean TRUE
|
||||
*/
|
||||
function SetPrefs($editsizex, $editsizey, $listmode, $showicons, $downfmt, $createfile, $showtype, $editor_font, $editor_size, $golastdir) {
|
||||
|
@ -225,7 +225,7 @@ class m_bro {
|
|||
}
|
||||
|
||||
/* ----------------------------------------------------------------- */
|
||||
/** Retourne le nom du fichier icone associé au fichier donc le nom est $file
|
||||
/** Retourne le nom du fichier icone associ au fichier donc le nom est $file
|
||||
* <b>Note</b>: Les fichiers icones sont mis en cache sur la page courante.
|
||||
* @param string $file Fichier dont on souhaite connaitre le fichier icone
|
||||
* @return string Fichier icone correspondant.
|
||||
|
@ -249,11 +249,11 @@ class m_bro {
|
|||
}
|
||||
|
||||
/* ----------------------------------------------------------------- */
|
||||
/** Retourne le type mime associé au fichier donc le nom est $file
|
||||
/** Retourne le type mime associ au fichier donc le nom est $file
|
||||
* <b>Note</b>: Les types mimes sont mis en cache sur la page courante.
|
||||
* Le type mime est déterminé d'après l'extension du fichier.
|
||||
* Le type mime est dtermin d'aprs l'extension du fichier.
|
||||
* @param string $file Fichier dont on souhaite connaitre le type mime
|
||||
* @return string Type mime / Sous type du fichier demandé
|
||||
* @return string Type mime / Sous type du fichier demand
|
||||
*/
|
||||
function mime($file) {
|
||||
global $bro_type;
|
||||
|
@ -320,17 +320,20 @@ class m_bro {
|
|||
}
|
||||
|
||||
/* ----------------------------------------------------------------- */
|
||||
/** Crée le dossier $file dans le dossier (parent) $dir
|
||||
* @param string $dir dossier dans lequel on veut créer un sous-dossier
|
||||
* @param string $file nom du dossier à créer
|
||||
* @return boolean TRUE si le dossier a été créé, FALSE si une erreur s'est produite.
|
||||
/** Cre le dossier $file dans le dossier (parent) $dir
|
||||
* @param string $dir dossier dans lequel on veut crer un sous-dossier
|
||||
* @param string $file nom du dossier crer
|
||||
* @return boolean TRUE si le dossier a t cr, FALSE si une erreur s'est produite.
|
||||
*/
|
||||
function CreateDir($dir,$file) {
|
||||
global $db,$cuid,$err;
|
||||
$file=ssla($file);
|
||||
$absolute=$this->convertabsolute($dir."/".$file,0);
|
||||
if ($absolute && !file_exists($absolute)) {
|
||||
mkdir($absolute,00777);
|
||||
if (!@mkdir($absolute,00777)) {
|
||||
$err->raise("bro",4);
|
||||
return false;
|
||||
}
|
||||
$db->query("UPDATE browser SET crff=1 WHERE uid='$cuid';");
|
||||
return true;
|
||||
} else {
|
||||
|
@ -341,10 +344,10 @@ class m_bro {
|
|||
|
||||
|
||||
/* ----------------------------------------------------------------- */
|
||||
/** Crée un fichier vide dans un dossier
|
||||
* @param string $dir Dossier dans lequel on crée le nouveau fichier
|
||||
* @param string $file Fichier que l'on souhaite créer.
|
||||
* @return boolean TRUE si le dossier a été créé, FALSE si une erreur s'est produite.
|
||||
/** Cre un fichier vide dans un dossier
|
||||
* @param string $dir Dossier dans lequel on cre le nouveau fichier
|
||||
* @param string $file Fichier que l'on souhaite crer.
|
||||
* @return boolean TRUE si le dossier a t cr, FALSE si une erreur s'est produite.
|
||||
*/
|
||||
function CreateFile($dir,$file) {
|
||||
global $db,$err,$cuid;
|
||||
|
@ -355,7 +358,10 @@ class m_bro {
|
|||
return false;
|
||||
}
|
||||
if (!file_exists($absolute)) {
|
||||
touch($absolute);
|
||||
if (!@touch($absolute)) {
|
||||
$err->raise("bro",3);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
$db->query("UPDATE browser SET crff=0 WHERE uid='$cuid';");
|
||||
return true;
|
||||
|
@ -364,9 +370,9 @@ class m_bro {
|
|||
|
||||
/* ----------------------------------------------------------------- */
|
||||
/** Efface les fichiers du tableau $file_list dans le dossier $R
|
||||
* @param array $file_list Liste des fichiers à effacer.
|
||||
* @param array $file_list Liste des fichiers effacer.
|
||||
* @param string $R Dossier dans lequel on efface les fichiers
|
||||
* @return boolean TRUE si les fichiers ont été effacés, FALSE si une erreur s'est produite.
|
||||
* @return boolean TRUE si les fichiers ont t effacs, FALSE si une erreur s'est produite.
|
||||
*/
|
||||
function DeleteFile($file_list,$R) {
|
||||
global $err, $mem;
|
||||
|
@ -388,10 +394,10 @@ class m_bro {
|
|||
|
||||
/* ----------------------------------------------------------------- */
|
||||
/** Renomme les fichier de $old du dossier $R en $new
|
||||
* @param string $R dossier dans lequel se trouve les fichiers à renommer.
|
||||
* @param string $R dossier dans lequel se trouve les fichiers renommer.
|
||||
* @param array of string $old Ancien nom des fichiers
|
||||
* @param array of string $new Nouveau nom des fichiers
|
||||
* @return boolean TRUE si les fichiers ont été renommés, FALSE si une erreur s'est produite.
|
||||
* @return boolean TRUE si les fichiers ont t renomms, FALSE si une erreur s'est produite.
|
||||
*/
|
||||
function RenameFile($R,$old,$new) {
|
||||
global $err;
|
||||
|
@ -404,12 +410,12 @@ class m_bro {
|
|||
for ($i=0;$i<count($old);$i++) {
|
||||
$old[$i]=ssla($old[$i]); // strip slashes if needed
|
||||
$new[$i]=ssla($new[$i]);
|
||||
if (!strpos($old[$i],"/") && !strpos($new[$i],"/")) { // caractère / interdit dans old ET dans new...
|
||||
if (!strpos($old[$i],"/") && !strpos($new[$i],"/")) { // caractre / interdit dans old ET dans new...
|
||||
@rename($absolute."/".$old[$i],$absolute."/".$old[$i].$alea);
|
||||
}
|
||||
}
|
||||
for ($i=0;$i<count($old);$i++) {
|
||||
if (!strpos($old[$i],"/") && !strpos($new[$i],"/")) { // caractère / interdit dans old ET dans new...
|
||||
if (!strpos($old[$i],"/") && !strpos($new[$i],"/")) { // caractre / interdit dans old ET dans new...
|
||||
@rename($absolute."/".$old[$i].$alea,$absolute."/".$new[$i]);
|
||||
}
|
||||
}
|
||||
|
@ -419,11 +425,11 @@ class m_bro {
|
|||
|
||||
|
||||
/* ----------------------------------------------------------------- */
|
||||
/** Déplace les fichier de $d du dossier $old vers $new
|
||||
* @param array of string $d Liste des fichiers du dossier $old à déplacer
|
||||
* @param string $old dossier dans lequel se trouve les fichiers à déplacer.
|
||||
* @param string $new dossier vers lequel seront déplacés les fichiers.
|
||||
* @return boolean TRUE si les fichiers ont été renommés, FALSE si une erreur s'est produite.
|
||||
/** Dplace les fichier de $d du dossier $old vers $new
|
||||
* @param array of string $d Liste des fichiers du dossier $old dplacer
|
||||
* @param string $old dossier dans lequel se trouve les fichiers dplacer.
|
||||
* @param string $new dossier vers lequel seront dplacs les fichiers.
|
||||
* @return boolean TRUE si les fichiers ont t renomms, FALSE si une erreur s'est produite.
|
||||
*/
|
||||
function MoveFile($d,$old,$new) {
|
||||
global $err;
|
||||
|
@ -433,10 +439,7 @@ class m_bro {
|
|||
return false;
|
||||
}
|
||||
|
||||
// FIXME: check that we don't have a huge security issue here ...
|
||||
// If the destionation (new) doesn't have an absolute path, give it the prefix (old) from the first file found
|
||||
if ($new[0] != '/') {
|
||||
// Ex: settings.php will become /var/alternc/html/f/foo/www/example.org/drupal-6.10/sites/default/settings.php
|
||||
$new = $old . '/' . $new;
|
||||
} else {
|
||||
$new = $this->convertabsolute($new,0);
|
||||
|
@ -461,12 +464,13 @@ class m_bro {
|
|||
|
||||
/* ----------------------------------------------------------------- */
|
||||
/** Change les droits d'acces aux fichier de $d du dossier $R en $p
|
||||
* @param string $R dossier dans lequel se trouve les fichiers à renommer.
|
||||
* @param string $R dossier dans lequel se trouve les fichiers renommer.
|
||||
* @param array of string $old Ancien nom des fichiers
|
||||
* @param array of string $new Nouveau nom des fichiers
|
||||
* @return boolean TRUE si les fichiers ont été renommés, FALSE si une erreur s'est produite.
|
||||
* @param $verbose boolean shall we 'echo' what we did ?
|
||||
* @return boolean TRUE si les fichiers ont t renomms, FALSE si une erreur s'est produite.
|
||||
*/
|
||||
function ChangePermissions($R,$d,$perm) {
|
||||
function ChangePermissions($R,$d,$perm,$verbose=true) {
|
||||
global $err;
|
||||
$absolute=$this->convertabsolute($R,0);
|
||||
if (!$absolute) {
|
||||
|
@ -475,8 +479,7 @@ class m_bro {
|
|||
}
|
||||
for ($i=0;$i<count($d);$i++) {
|
||||
$d[$i]=ssla($d[$i]); // strip slashes if needed
|
||||
if (!strpos($d[$i],"/")) { // caractère / interdit dans le nom du fichier
|
||||
// @rename($absolute."/".$old[$i],$absolute."/".$old[$i].$alea);
|
||||
if (!strpos($d[$i],"/")) { // caractre / interdit dans le nom du fichier
|
||||
$m = fileperms($absolute."/". $d[$i]);
|
||||
|
||||
// pour l'instant on se limite a "write" pour owner, puisque c'est le seul
|
||||
|
@ -488,7 +491,9 @@ class m_bro {
|
|||
}
|
||||
$m = $m | ($perm[$i]['w'] ? 128 : 0); // 0600
|
||||
chmod($absolute."/".$d[$i], $m);
|
||||
echo "chmod " . sprintf('%o', $m) . " file, was " . sprintf('%o', fileperms($absolute."/". $d[$i])). " -- " . $perm[$i]['w'];
|
||||
if ($verbose) {
|
||||
echo "chmod " . sprintf('%o', $m) . " file, was " . sprintf('%o', fileperms($absolute."/". $d[$i])). " -- " . $perm[$i]['w'];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -498,7 +503,7 @@ class m_bro {
|
|||
/* ----------------------------------------------------------------- */
|
||||
/** Recoit un champ file upload (Global) et le stocke dans le dossier $R
|
||||
* Le champ file-upload originel doit s'appeler "userfile" et doit
|
||||
* bien être un fichier d'upload.
|
||||
* bien tre un fichier d'upload.
|
||||
* @param string $R Dossier dans lequel on upload le fichier
|
||||
* @returns the path where the file resides or false if upload failed
|
||||
*/
|
||||
|
@ -550,16 +555,18 @@ class m_bro {
|
|||
}
|
||||
$file = escapeshellarg($file);
|
||||
$dest = escapeshellarg($dest);
|
||||
#TODO new version of tar supports `tar xf ...` so there is no
|
||||
# need to specify the compression format
|
||||
// TODO new version of tar supports `tar xf ...` so there is no
|
||||
// need to specify the compression format
|
||||
exec("tar -xzf $file -C $dest", $void, $ret);
|
||||
if ($ret) {
|
||||
#print "tgz extraction failed, moving on to tbz\n";
|
||||
exec("tar -xjf $file -C $dest", $void, $ret);
|
||||
}
|
||||
if ($ret) {
|
||||
$cmd = "unzip -o $file -d $dest";
|
||||
#print "tbz extraction failed, moving on to zip: $cmd\n";
|
||||
exec($cmd, $void, $ret);
|
||||
}
|
||||
if ($ret) {
|
||||
$cmd = "gunzip $file";
|
||||
exec($cmd, $void, $ret);
|
||||
}
|
||||
if ($ret) {
|
||||
|
@ -611,64 +618,6 @@ class m_bro {
|
|||
function CopyOneFile($src, $dest)
|
||||
{
|
||||
global $err;
|
||||
|
||||
/*
|
||||
* XXX: Disabled functionality until audit is completed
|
||||
*/
|
||||
/*
|
||||
if (substr($src, 0, 7) == "http://") {
|
||||
$filename = basename($src);
|
||||
$extractdir = tempnam("/tmp", "brouteur");
|
||||
unlink($extractdir);
|
||||
mkdir($extractdir);
|
||||
|
||||
if (!$http = @fopen($src, "rb")) {
|
||||
// Try to get a handle on $http with fsockopen instead
|
||||
//FIXME we'd better use a real http getter function/class (such as Octopuce_Http_Client (ask Benjamin)
|
||||
ereg('^http://([^/]+)(/.*)$', $src, $eregs);
|
||||
$hostname = $eregs[1];
|
||||
$path = $eregs[2];
|
||||
$http = @fsockopen($hostname, 80);
|
||||
@fputs($http, "GET $path HTTP/1.1\nHost: $hostname\n\n");
|
||||
}
|
||||
if ($http) {
|
||||
// Save the bits
|
||||
$f = fopen("$extractdir/$filename", "wb");
|
||||
while (!feof($http)) {
|
||||
$bin = fgets($http, 16384);
|
||||
fwrite($f, $bin);
|
||||
//FIXME if (!trim($bin)) break;
|
||||
}
|
||||
fclose($f);
|
||||
fclose($http);
|
||||
} else {
|
||||
// Dammit, try with wget than
|
||||
exec("wget -q '$src' -O '$extractdir/$filename'", $void, $ret);
|
||||
if ($ret) {
|
||||
$error = _("Unable to download the web application's package.");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// Now extract that package
|
||||
if (!brouteur_extract("$extractdir/$filename", $extractdir)) {
|
||||
$error = _("Unable to extract the files");
|
||||
return false;
|
||||
}
|
||||
unlink("$extractdir/$filename");
|
||||
|
||||
// Corrupt $src since we want to copy $extractdir/packagename
|
||||
$hd = opendir($extractdir);
|
||||
while ($file = readdir($hd)) {
|
||||
if ($file != "." && $file != "..") {
|
||||
$src = "$extractdir/$file";
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
// Last step // Copy -R
|
||||
$src = escapeshellarg($src);
|
||||
$dest = escapeshellarg($dest);
|
||||
exec("cp -Rpf $src $dest", $void, $ret);
|
||||
|
@ -683,8 +632,8 @@ class m_bro {
|
|||
/* ----------------------------------------------------------------- */
|
||||
/** Affiche le chemin et les liens de la racine au dossier $path
|
||||
* Affiche autant de liens HTML (anchor) que le chemin $path contient de
|
||||
* niveaux de dossier. Chaque lien est associé à la page web $action
|
||||
* à laquelle on ajoute le paramètre R=+Le nom du dossier courant.
|
||||
* niveaux de dossier. Chaque lien est associ la page web $action
|
||||
* laquelle on ajoute le paramtre R=+Le nom du dossier courant.
|
||||
* @param string $path Dossier vers lequel on trace le chemin
|
||||
* @param string $action Page web de destination des liens
|
||||
* @return string le code HTML ainsi obtenu.
|
||||
|
@ -706,10 +655,10 @@ class m_bro {
|
|||
/* ----------------------------------------------------------------- */
|
||||
/** Affiche le contenu d'un fichier pour un champ VALUE de textarea
|
||||
* Affiche le contenu du fichier $file dans le dossier $R. Le contenu
|
||||
* du fichier est reformaté pour pouvoir entrer dans un champs TextArea
|
||||
* du fichier est reformat pour pouvoir entrer dans un champs TextArea
|
||||
* @param string $R Dossier dans lequel on cherche le fichier
|
||||
* @param string $file Fichier dont on souhaite obtenir le contenu.
|
||||
* @return boolean retourne TRUE si le fichier a bien été émis sur
|
||||
* @return boolean retourne TRUE si le fichier a bien t mis sur
|
||||
* echo, ou FALSE si une erreur est survenue.
|
||||
*/
|
||||
function content($R,$file) {
|
||||
|
@ -718,10 +667,19 @@ class m_bro {
|
|||
if (!strpos($file,"/")) {
|
||||
$absolute.="/".$file;
|
||||
if (file_exists($absolute)) {
|
||||
$content = @file($absolute);
|
||||
for($i=0;$i<count($content);$i++) {
|
||||
echo str_replace("<","<",str_replace("&","&",$content[$i]));
|
||||
$f=fopen($absolute,"rb");
|
||||
if ($f) {
|
||||
while ($s=fgets($f,1024)) {
|
||||
echo str_replace("<","<",str_replace("&","&",$s));
|
||||
}
|
||||
fclose($f);
|
||||
} else {
|
||||
$err->raise("bro",6);
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
$err->raise("bro",6);
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
$err->raise("bro",1);
|
||||
|
@ -739,10 +697,10 @@ class m_bro {
|
|||
/* ----------------------------------------------------------------- */
|
||||
/** Retourne une url de navigation pour le fichier $name du dossier $dir
|
||||
* Les url sont mises en caches. Il se peut qu'aucune url n'existe, ou que
|
||||
* celle-ci soit protégée par un .htaccess.
|
||||
* @param string $dir Dossier concerné
|
||||
* celle-ci soit protge par un .htaccess.
|
||||
* @param string $dir Dossier concern
|
||||
* @param string $name Fichier dont on souhaite obtenir une URL
|
||||
* @return string URL concernée, ou FALSE si aucune URL n'est disponible pour ce fichier
|
||||
* @return string URL concerne, ou FALSE si aucune URL n'est disponible pour ce fichier
|
||||
*/
|
||||
function viewurl($dir,$name) {
|
||||
global $db,$cuid;
|
||||
|
@ -783,6 +741,7 @@ class m_bro {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Return a HTML snippet representing an extraction function only if the mimetype of $name is supported
|
||||
*/
|
||||
|
@ -810,16 +769,17 @@ class m_bro {
|
|||
return false;
|
||||
}
|
||||
|
||||
|
||||
/* ------------------------------------------------------------------ */
|
||||
/** Echoes the content of the file $file located in directory $R
|
||||
*/
|
||||
function content_send($R,$file) {
|
||||
global $err;
|
||||
$absolute=$this->convertabsolute($R,0);
|
||||
if (!strpos($file,"/")) {
|
||||
$absolute.="/".$file;
|
||||
if (file_exists($absolute)) {
|
||||
$content = @file($absolute);
|
||||
for($i=0;$i<count($content);$i++) {
|
||||
echo stripslashes($content[$i]);
|
||||
}
|
||||
readfile($absolute);
|
||||
}
|
||||
} else {
|
||||
$err->raise("bro",1);
|
||||
|
@ -827,15 +787,16 @@ class m_bro {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
/* ----------------------------------------------------------------- */
|
||||
/** Sauve le fichier $file dans le dossier $R avec pour contenu $texte
|
||||
* le contenu est issu d'un textarea, et ne DOIT PAS contenir de \ ajoutés
|
||||
* le contenu est issu d'un textarea, et ne DOIT PAS contenir de \ ajouts
|
||||
* automatiquement par addslashes
|
||||
* @param string $file Nom du fichier à sauver. S'il existe déjà, il sera
|
||||
* écrasé sans confirmation.
|
||||
* @param string $file Nom du fichier sauver. S'il existe dj, il sera
|
||||
* cras sans confirmation.
|
||||
* @param string $R Dossier dans lequel on modifie le fichier
|
||||
* @param string $texte texte du fichier à sauver dedans
|
||||
* @return boolean TRUE si tout s'est bien passé, FALSE si une erreur s'est produite.
|
||||
* @param string $texte texte du fichier sauver dedans
|
||||
* @return boolean TRUE si tout s'est bien pass, FALSE si une erreur s'est produite.
|
||||
*/
|
||||
function save($file,$R,$texte) {
|
||||
global $err;
|
||||
|
@ -847,6 +808,9 @@ class m_bro {
|
|||
if ($f) {
|
||||
fputs($f,$texte,strlen($texte));
|
||||
fclose($f);
|
||||
} else {
|
||||
$err->raise("bro",5);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
@ -855,59 +819,62 @@ class m_bro {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
/* ----------------------------------------------------------------- */
|
||||
/** Echo d'un flux .tar.Z contenant tout le contenu du dossier $dir
|
||||
* @param string $dir dossier à dumper, relatif à la racine du compte du membre.
|
||||
* @return void NE RETOURNE RIEN, et il faut Quitter le script immédiatement après
|
||||
* @param string $dir dossier dumper, relatif la racine du compte du membre.
|
||||
* @return void NE RETOURNE RIEN, et il faut Quitter le script immdiatement aprs
|
||||
*/
|
||||
function DownloadZ($dir="") {
|
||||
global $mem;
|
||||
function DownloadZ($dir="") {
|
||||
global $mem,$L_ALTERNC_LOC;
|
||||
header("Content-Disposition: attachment; filename=".$mem->user["login"].".Z");
|
||||
header("Content-Type: application/x-Z");
|
||||
header("Content-Transfer-Encoding: binary");
|
||||
$d=escapeshellarg(".".$this->convertabsolute($dir,1));
|
||||
set_time_limit(0);
|
||||
passthru("/bin/tar -cZ -C /var/alternc/html/".substr($mem->user["login"],0,1)."/".$mem->user["login"]."/ $d");
|
||||
passthru("/bin/tar -cZ -C ".$L_ALTERNC_LOC."/html/".substr($mem->user["login"],0,1)."/".$mem->user["login"]."/ $d");
|
||||
}
|
||||
|
||||
|
||||
/* ----------------------------------------------------------------- */
|
||||
/** Echo d'un flux .tgz contenant tout le contenu du dossier $dir
|
||||
* @param string $dir dossier à dumper, relatif à la racine du compte du membre.
|
||||
* @return void NE RETOURNE RIEN, et il faut Quitter le script immédiatement après
|
||||
* @param string $dir dossier dumper, relatif la racine du compte du membre.
|
||||
* @return void NE RETOURNE RIEN, et il faut Quitter le script immdiatement aprs
|
||||
*/
|
||||
function DownloadTGZ($dir="") {
|
||||
global $mem;
|
||||
function DownloadTGZ($dir="") {
|
||||
global $mem,$L_ALTERNC_LOC;
|
||||
header("Content-Disposition: attachment; filename=".$mem->user["login"].".tgz");
|
||||
header("Content-Type: application/x-tgz");
|
||||
header("Content-Transfer-Encoding: binary");
|
||||
$d=escapeshellarg(".".$this->convertabsolute($dir,1));
|
||||
set_time_limit(0);
|
||||
passthru("/bin/tar -cz -C /var/alternc/html/".substr($mem->user["login"],0,1)."/".$mem->user["login"]."/ $d");
|
||||
passthru("/bin/tar -cz -C ".$L_ALTERNC_LOC."/html/".substr($mem->user["login"],0,1)."/".$mem->user["login"]."/ $d");
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/* ----------------------------------------------------------------- */
|
||||
/** Echo d'un flux .tar.bz2 contenant tout le contenu du dossier $dir
|
||||
* @param string $dir dossier à dumper, relatif à la racine du compte du membre.
|
||||
* @return void NE RETOURNE RIEN, et il faut Quitter le script immédiatement après
|
||||
* @param string $dir dossier dumper, relatif la racine du compte du membre.
|
||||
* @return void NE RETOURNE RIEN, et il faut Quitter le script immdiatement aprs
|
||||
*/
|
||||
function DownloadTBZ($dir="") {
|
||||
global $mem;
|
||||
function DownloadTBZ($dir="") {
|
||||
global $mem,$L_ALTERNC_LOC;
|
||||
header("Content-Disposition: attachment; filename=".$mem->user["login"].".tar.bz2");
|
||||
header("Content-Type: application/x-bzip2");
|
||||
header("Content-Transfer-Encoding: binary");
|
||||
$d=escapeshellarg(".".$this->convertabsolute($dir,1));
|
||||
set_time_limit(0);
|
||||
passthru("/bin/tar -cj -C /var/alternc/html/".substr($mem->user["login"],0,1)."/".$mem->user["login"]."/ $d");
|
||||
passthru("/bin/tar -cj -C ".$L_ALTERNC_LOC."/html/".substr($mem->user["login"],0,1)."/".$mem->user["login"]."/ $d");
|
||||
}
|
||||
|
||||
|
||||
/* ----------------------------------------------------------------- */
|
||||
/** Echo d'un flux .ZIP contenant tout le contenu du dossier $dir
|
||||
* @param string $dir dossier à dumper, relatif à la racine du compte du membre.
|
||||
* @return void NE RETOURNE RIEN, et il faut Quitter le script immédiatement après
|
||||
* @param string $dir dossier dumper, relatif la racine du compte du membre.
|
||||
* @return void NE RETOURNE RIEN, et il faut Quitter le script immdiatement aprs
|
||||
*/
|
||||
function DownloadZIP($dir="") {
|
||||
global $mem;
|
||||
function DownloadZIP($dir="") {
|
||||
global $mem,$L_ALTERNC_LOC;
|
||||
header("Content-Disposition: attachment; filename=".$mem->user["login"].".zip");
|
||||
header("Content-Type: application/x-zip");
|
||||
header("Content-Transfer-Encoding: binary");
|
||||
|
@ -916,8 +883,9 @@ class m_bro {
|
|||
passthru("/usr/bin/zip -r - $d");
|
||||
}
|
||||
|
||||
|
||||
/* ----------------------------------------------------------------- */
|
||||
/** Fonction de tri perso utilisé par filelist.
|
||||
/** Fonction de tri perso utilis par filelist.
|
||||
* @access private
|
||||
*/
|
||||
function _sort_filelist_name($a,$b) {
|
||||
|
@ -926,10 +894,11 @@ class m_bro {
|
|||
return $a["name"]>$b["name"];
|
||||
}
|
||||
|
||||
|
||||
/* ----------------------------------------------------------------- */
|
||||
/** Efface $file et tous ses sous-dossiers s'il s'agit d'un dossier
|
||||
* A UTILISER AVEC PRECAUTION !!!
|
||||
* @param string $file Fichier ou dossier à supprimer.
|
||||
* @param string $file Fichier ou dossier supprimer.
|
||||
* @access private
|
||||
*/
|
||||
function _delete($file) {
|
||||
|
|
|
@ -73,8 +73,8 @@ class m_dom {
|
|||
var $type_ipv6 = "IPV6";
|
||||
var $type_cname = "CNAME";
|
||||
var $type_txt = "TXT";
|
||||
var $type_mx = "DEFMX";
|
||||
var $type_mx2 = "DEFMX2";
|
||||
var $type_defmx = "DEFMX";
|
||||
var $type_defmx2 = "DEFMX2";
|
||||
|
||||
var $action_insert = "0";
|
||||
var $action_update= "1";
|
||||
|
@ -107,7 +107,7 @@ class m_dom {
|
|||
$db->query("select * from domaines_type order by advanced;");
|
||||
$this->domains_type_lst=false;
|
||||
while ($db->next_record()) {
|
||||
$this->domains_type_lst[] = $db->Record;
|
||||
$this->domains_type_lst[strtolower($db->Record["name"])] = $db->Record;
|
||||
}
|
||||
return $this->domains_type_lst;
|
||||
}
|
||||
|
@ -312,7 +312,7 @@ class m_dom {
|
|||
function add_domain($domain,$dns,$noerase=0,$force=0,$isslave=0,$slavedom="") {
|
||||
global $db,$err,$quota,$classes,$L_MX,$L_FQDN,$tld,$cuid,$bro;
|
||||
$err->log("dom","add_domain",$domain);
|
||||
$mx="1";
|
||||
|
||||
// Locked ?
|
||||
if (!$this->islocked) {
|
||||
$err->raise("dom",3);
|
||||
|
@ -380,7 +380,7 @@ class m_dom {
|
|||
return false;
|
||||
}
|
||||
if ($noerase) $noerase="1"; else $noerase="0";
|
||||
$db->query("insert into domaines (compte,domaine,mx,gesdns,gesmx,noerase,dns_action) values ('$cuid','$domain','$L_MX','$dns','$mx','$noerase','UPDATE');");
|
||||
$db->query("insert into domaines (compte,domaine,gesdns,gesmx,noerase,dns_action) values ('$cuid','$domain','$dns','1','$noerase','UPDATE');");
|
||||
|
||||
if ($isslave) {
|
||||
$isslave=true;
|
||||
|
@ -410,13 +410,6 @@ class m_dom {
|
|||
$this->set_sub_domain($domain, 'mail', $this->type_webmail, '');
|
||||
}
|
||||
|
||||
if ($mx) {
|
||||
$this->set_sub_domain($domain, '', $this->type_defmx, '');
|
||||
if (! empty($GLOBALS['L_DEFAULT_SECONDARY_MX'])) {
|
||||
$this->set_sub_domain($domain, '', $this->type_defmx2, '');
|
||||
}
|
||||
}
|
||||
|
||||
// DEPENDANCE :
|
||||
// Lancement de add_dom sur les classes domain_sensitive :
|
||||
// Declenchons les autres classes.
|
||||
|
@ -845,7 +838,7 @@ class m_dom {
|
|||
// TODO : j'ai viré le type action, valider que plus personne ne l'utilise (quatrieme argument)
|
||||
function set_sub_domain($dom,$sub,$type,$dest, $type_old=null,$sub_old=null,$value_old=null) {
|
||||
global $db,$err,$cuid;
|
||||
$err->log("dom","set_sub_domain",$dom."/".$sub);
|
||||
$err->log("dom","set_sub_domain",$dom."/".$sub."/".$type."/".$dest);
|
||||
// Locked ?
|
||||
if (!$this->islocked) {
|
||||
$err->raise("dom",3);
|
||||
|
@ -939,15 +932,14 @@ class m_dom {
|
|||
*
|
||||
* @param string $dom Domaine du compte courant que l'on souhaite modifier
|
||||
* @param integer $dns Vaut 1 ou 0 pour héberger ou pas le DNS du domaine
|
||||
* @param integer $mx Nom fqdn du serveur mx, si le mx local est précisé,
|
||||
* on héberge alors les mails du domaine.
|
||||
* @param integer $gesmx Héberge-t-on le emails du domaines sur ce serveur ?
|
||||
* @param boolean $force Faut-il passer les checks DNS ou MX ? (admin only)
|
||||
* @return boolean appelle $mail->add_dom ou $ma->del_dom si besoin, en
|
||||
* fonction du champs MX. Retourne FALSE si une erreur s'est produite,
|
||||
* TRUE sinon.
|
||||
*
|
||||
*/
|
||||
function edit_domain($dom,$dns,$mx,$force=0) {
|
||||
function edit_domain($dom,$dns,$gesmx,$force=0) {
|
||||
global $db,$err,$L_MX,$classes,$cuid;
|
||||
$err->log("dom","edit_domain",$dom);
|
||||
// Locked ?
|
||||
|
@ -983,55 +975,50 @@ class m_dom {
|
|||
}
|
||||
if ($dns!="1") $dns="0";
|
||||
// On vérifie que des modifications ont bien eu lieu :)
|
||||
if ($r["dns"]==$dns && $r["mx"]==$mx) {
|
||||
if ($r["dns"]==$dns && $r["mail"]==$gesmx) {
|
||||
$err->raise("dom",15);
|
||||
return false;
|
||||
}
|
||||
// MX ?
|
||||
if ($mx==$L_MX)
|
||||
$gesmx="1";
|
||||
else
|
||||
$gesmx="0";
|
||||
|
||||
//si gestion mx uniquement, vérification du dns externe
|
||||
if ($dns=="0" && $gesmx=="1" && !$force) {
|
||||
$vmx = $this->checkmx($dom,$mx);
|
||||
if ($vmx == 1) {
|
||||
// Aucun champ mx de spécifié sur le dns
|
||||
$err->raise("dom",25);
|
||||
return false;
|
||||
$err->raise("dom",25);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
if ($vmx == 2) {
|
||||
// Serveur non spécifié parmi les champx mx
|
||||
$err->raise("dom",25);
|
||||
return false;
|
||||
$err->raise("dom",25);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// OK, des modifs ont été faites, on valide :
|
||||
// DEPENDANCE :
|
||||
if ($gesmx && !$r["mail"]) { // on a associé le MX : on cree donc l'entree dans LDAP
|
||||
if ($gesmx && !$r["mail"]) { // on a associé le MX : on cree donc l'entree dans MySQL
|
||||
// Lancement de add_dom sur les classes domain_sensitive :
|
||||
foreach($classes as $c) {
|
||||
if (method_exists($GLOBALS[$c],"alternc_add_mx_domain")) {
|
||||
$GLOBALS[$c]->alternc_add_mx_domain($dom);
|
||||
}
|
||||
if (method_exists($GLOBALS[$c],"alternc_add_mx_domain")) {
|
||||
$GLOBALS[$c]->alternc_add_mx_domain($dom);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!$gesmx && $r["mail"]) { // on a dissocié le MX : on détruit donc l'entree dans LDAP
|
||||
// Lancement de del_dom sur les classes domain_sensitive :
|
||||
foreach($classes as $c) {
|
||||
if (method_exists($GLOBALS[$c],"alternc_del_mx_domain")) {
|
||||
$GLOBALS[$c]->alternc_del_mx_domain($dom);
|
||||
}
|
||||
if (method_exists($GLOBALS[$c],"alternc_del_mx_domain")) {
|
||||
$GLOBALS[$c]->alternc_del_mx_domain($dom);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$db->query("UPDATE domaines SET gesdns='$dns', mx='$mx', gesmx='$gesmx' WHERE domaine='$dom'");
|
||||
$db->query("UPDATE domaines set dns_action='UPDATE' where domaine='$dom';");
|
||||
|
||||
|
||||
return true;
|
||||
} // edit_domain
|
||||
|
||||
|
@ -1229,6 +1216,23 @@ class m_dom {
|
|||
return true;
|
||||
}
|
||||
|
||||
|
||||
/* ----------------------------------------------------------------- */
|
||||
/**
|
||||
* Declare that a domain's emails are hosted in this server :
|
||||
* This adds 2 MX entries in this domain (if required)
|
||||
*/
|
||||
function alternc_add_mx_domain($domain) {
|
||||
global $err;
|
||||
$err->log("dom","alternc_add_mx_domain");
|
||||
$this->set_sub_domain($domain, '', $this->type_defmx, '');
|
||||
if (! empty($GLOBALS['L_DEFAULT_SECONDARY_MX'])) {
|
||||
$this->set_sub_domain($domain, '', $this->type_defmx2, '');
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/* ----------------------------------------------------------------- */
|
||||
/**
|
||||
* Efface un compte (tous ses domaines)
|
||||
|
@ -1243,6 +1247,7 @@ class m_dom {
|
|||
return true;
|
||||
}
|
||||
|
||||
|
||||
/* ----------------------------------------------------------------- */
|
||||
/**
|
||||
* Returns the used quota for the $name service for the current user.
|
||||
|
|
|
@ -71,18 +71,28 @@ class m_hta {
|
|||
return false;
|
||||
}
|
||||
if (!file_exists($absolute)) {
|
||||
mkdir($absolute,00777);
|
||||
@mkdir($absolute,00777);
|
||||
}
|
||||
if (!file_exists("$absolute/.htaccess")) {
|
||||
touch("$absolute/.htaccess");
|
||||
$file = fopen("$absolute/.htaccess","r+");
|
||||
if (!@touch("$absolute/.htaccess")) {
|
||||
$err->raise("hta",12);
|
||||
return false;
|
||||
}
|
||||
$file = @fopen("$absolute/.htaccess","r+");
|
||||
if (!$file) {
|
||||
$err->raise("hta",12);
|
||||
return false;
|
||||
}
|
||||
fseek($file,0);
|
||||
$param="AuthUserFile $absolute/.htpasswd\nAuthName \"Zone Protégée\"\nAuthType Basic\nrequire valid-user\n";
|
||||
fwrite($file, $param);
|
||||
fclose($file);
|
||||
}
|
||||
if (!file_exists("$absolute/.htpasswd")) {
|
||||
touch("$absolute/.htpasswd");
|
||||
if (!touch("$absolute/.htpasswd")) {
|
||||
$err->raise("hta",12);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -376,6 +376,10 @@ msgstr "The user '%s' already exist for this folder"
|
|||
msgid "err_hta_11"
|
||||
msgstr "Please enter a valid username"
|
||||
|
||||
#. Cannot write inside the requested folder. Please check your permissions
|
||||
msgid "err_hta_12"
|
||||
msgstr "Cannot write inside the requested folder. Please check your permissions."
|
||||
|
||||
#. Email Accounts
|
||||
msgid "quota_mail"
|
||||
msgstr "Email Accounts"
|
||||
|
@ -674,6 +678,22 @@ msgstr "File or folder name is incorrect"
|
|||
msgid "err_bro_2"
|
||||
msgstr "You cannot move or copy a file to the same folder"
|
||||
|
||||
#. Cannot create the requested file. Please check permissions.
|
||||
msgid "err_bro_3"
|
||||
msgstr "Cannot create the requested file. Please check permissions."
|
||||
|
||||
#. Cannot create the requested directory. Please check permissions.
|
||||
msgid "err_bro_4"
|
||||
msgstr "Cannot create the requested directory. Please check permissions."
|
||||
|
||||
#. Cannot edit the requested file. Please check permissions.
|
||||
msgid "err_bro_5"
|
||||
msgstr "Cannot edit the requested file. Please check permissions."
|
||||
|
||||
#. Cannot read the requested file. Please check permissions.
|
||||
msgid "err_bro_6"
|
||||
msgstr "Cannot read the requested file. Please check permissions."
|
||||
|
||||
#. If we manage your DNS <br />You can manage your mails elsewhere if you want
|
||||
#. (MX field).<br />Write <b><code>%s</code></b> in this field if your mail
|
||||
#. must be managed by %s<br />or put the IP address or name of the mail server
|
||||
|
@ -781,11 +801,6 @@ msgstr "The password is mandatory"
|
|||
msgid "err_mysql_21"
|
||||
msgstr "The username cannot be empty"
|
||||
|
||||
msgid "err_bro_3"
|
||||
msgstr ""
|
||||
"You don't have the right to write into this folder. Please check the access "
|
||||
"rights."
|
||||
|
||||
# $d,$m,$y,$h,$i,$hh,$am
|
||||
# 1 2 3 4 5 6 7
|
||||
#, fuzzy
|
||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -378,6 +378,10 @@ msgstr "L'utilisateur '%s' existe d
|
|||
msgid "err_hta_11"
|
||||
msgstr "Veuillez saisir un nom d'utilisateur valide"
|
||||
|
||||
#. Cannot write inside the requested folder. Please check your permissions
|
||||
msgid "err_hta_12"
|
||||
msgstr "Impossible d'écrire dans le dossier concerné. Vérifiez vos permissions."
|
||||
|
||||
#. Email Accounts
|
||||
msgid "quota_mail"
|
||||
msgstr "Comptes emails"
|
||||
|
@ -692,6 +696,22 @@ msgstr "R
|
|||
msgid "err_bro_2"
|
||||
msgstr "Vous ne pouvez pas déplacer un fichier dans le même répertoire !"
|
||||
|
||||
#. Cannot create the requested file. Please check permissions.
|
||||
msgid "err_bro_3"
|
||||
msgstr "Impossible de créer le fichier demandé. Vérifiez les permissions."
|
||||
|
||||
#. Cannot create the requested directory. Please check permissions.
|
||||
msgid "err_bro_4"
|
||||
msgstr "Impossible de créer le répertoire demandé. Vérifiez les permissions."
|
||||
|
||||
#. Cannot edit the requested file. Please check permissions.
|
||||
msgid "err_bro_5"
|
||||
msgstr "Impossible de modifier le fichier demandé. Vérifiez les permissions."
|
||||
|
||||
#. Cannot read the requested file. Please check permissions.
|
||||
msgid "err_bro_6"
|
||||
msgstr "Impossible de lire le fichier demandé. Vérifiez les permissions."
|
||||
|
||||
#. If we manage your DNS <br />You can manage your mails elsewhere if you want
|
||||
#. (MX field).<br />Write <b><code>%s</code></b> in this field if your mail
|
||||
#. must be managed by %s<br />or put the IP address or name of the mail server
|
||||
|
@ -788,11 +808,6 @@ msgstr "Le mot de passe est obligatoire"
|
|||
msgid "err_mysql_21"
|
||||
msgstr "Le nom d'utilisateur ne peut pas être vide"
|
||||
|
||||
msgid "err_bro_3"
|
||||
msgstr ""
|
||||
"Vous n'avez pas le droit d'écrire dans ce répertoire. Vérifiez les droits "
|
||||
"d'accès !"
|
||||
|
||||
# $d,$m,$y
|
||||
# 1 2 3
|
||||
msgid "%3$d-%2$d-%1$d"
|
||||
|
@ -837,3 +852,9 @@ msgstr "Entr
|
|||
msgid "secondary MX DNS entry"
|
||||
msgstr "Entrée DNS MX secondaire"
|
||||
|
||||
msgid "Default mail server"
|
||||
msgstr "Serveur de mail par défaut"
|
||||
|
||||
msgid "Default backup mail server"
|
||||
msgstr "Serveur de mail de secours"
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -225,7 +225,7 @@ CREATE TABLE IF NOT EXISTS sub_domaines (
|
|||
web_result varchar(255) not null default '',
|
||||
enable enum ('ENABLED', 'ENABLE', 'DISABLED', 'DISABLE') NOT NULL DEFAULT 'ENABLED',
|
||||
PRIMARY KEY (id),
|
||||
UNIQUE (compte,domaine,sub,type)
|
||||
UNIQUE (compte,domaine,sub,type,valeur)
|
||||
-- ,FOREIGN KEY (type) REFERENCES (domaines_type)
|
||||
) TYPE=MyISAM;
|
||||
|
||||
|
|
Loading…
Reference in New Issue