Merged changesets 2970, 2972, 2984, 2986, 2987 and 2988 from branch stable 1.0 to trunk.

This commit is contained in:
Alexis Lahouze 2011-06-04 14:28:57 +00:00
parent 2015f21029
commit 60ab97c883
24 changed files with 11102 additions and 19729 deletions

2
.gitattributes vendored
View File

@ -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

View File

@ -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("\"","&quot;",$editfile); ?>" />
<input type="hidden" name="R" value="<?php echo str_replace("\"","&quot;",$R); ?>" />
@ -68,10 +78,5 @@ $bro->content($R,$editfile);
<input type="submit" class="inb" value="<?php __("Save &amp; 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"); ?>

View File

@ -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"]) ?>&amp;sub=<?php echo urlencode($r["sub"][$i]["name"]) ?>&amp;type=<?php echo urlencode($r["sub"][$i]["type"]) ?>&amp;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"]) ?>&amp;sub=<?php echo urlencode($r["sub"][$i]["name"]) ?>&amp;type=<?php echo urlencode($r["sub"][$i]["type"]) ?>&amp;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>&nbsp;</p>
<p>&nbsp;</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();" />&nbsp;<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();" />&nbsp;<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"]); ?> />&nbsp;<label for="yesdns"><?php __("Yes"); ?></label>
</td><td><input type="radio" id="nodns" class="inc" name="dns" value="0"<?php cbox(!$r["dns"]); ?> />&nbsp;<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"]); ?> />&nbsp;<label for="yesemail"><?php __("Yes"); ?></label>
</td><td><input type="radio" id="noemail" class="inc" name="email" value="0"<?php cbox(!$r["mail"]); ?> />&nbsp;<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>&nbsp</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">

View File

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

View File

@ -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

View File

@ -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)) {

View File

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

View File

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

View File

@ -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>";

View File

@ -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

View File

@ -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("<","&lt;",str_replace("&","&amp;",$content[$i]));
$f=fopen($absolute,"rb");
if ($f) {
while ($s=fgets($f,1024)) {
echo str_replace("<","&lt;",str_replace("&","&amp;",$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) {

View 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.

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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;