Commit 60ab97c8 authored by Alexis Lahouze's avatar Alexis Lahouze
Browse files

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

parent 2015f210
......@@ -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("\"","&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"); ?>
......@@ -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>
<table class="tlist">
<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>
<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>
<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>
</tr>
<tr class="trbtn"><td colspan="2"><input type="submit" class="inb" name="submit" value="<?php __("Submit the changes"); ?>" /></td></tr>
<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">
......
......@@ -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");
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -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 hberger ou pas le DNS du domaine
* @param integer $mx Nom fqdn du serveur mx, si le mx local est prcis,
* on hberge alors les mails du domaine.
* @param integer $gesmx Hberge-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 vrifie 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, vrification du dns externe
if ($dns=="0" && $gesmx=="1" && !$force) {
$vmx = $this->checkmx($dom,$mx);
if ($vmx == 1) {
// Aucun champ mx de spcifi sur le dns
$err->raise("dom",25);
return false;
$err->raise("dom",25);
return false;
}
if ($vmx == 2) {
// Serveur non spcifi 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 dtruit 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 Protge\"\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;
......
......@@ -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
......
......@@ -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."