mirror of
https://gitlab.easter-eggs.com/ee/ldapsaisie.git
synced 2024-12-18 22:43:47 +01:00
- LSaddon :: Maildir :
-> Ajout de la fonction getMaildirPath() s'occupant de la génération du chemin distant de la maildir à partir d'un LSldapObject. -> Ajout de la possibilité de la définition d'une regex pour déterminer le chemin distant de la maildir. Cette regex doit matcher tout ou parti de la chaine retourné par le LSformat LS_MAILDIR_FTP_MAILDIR_PATH.
This commit is contained in:
parent
6b60147327
commit
6957badce8
2 changed files with 47 additions and 6 deletions
|
@ -39,7 +39,10 @@ define('LS_MAILDIR_FTP_USER','vmail');
|
||||||
define('LS_MAILDIR_FTP_PWD','password');
|
define('LS_MAILDIR_FTP_PWD','password');
|
||||||
|
|
||||||
// Serveur FTP - Maildir Path
|
// Serveur FTP - Maildir Path
|
||||||
define('LS_MAILDIR_FTP_MAILDIR_PATH','%{uid}');
|
define('LS_MAILDIR_FTP_MAILDIR_PATH','%{mailbox}');
|
||||||
|
|
||||||
|
// Serveur FTP - Maildir Path Regex
|
||||||
|
define('LS_MAILDIR_FTP_MAILDIR_PATH_REGEX','^\/home\/vmail\/([^\/]+)\/$');
|
||||||
|
|
||||||
// Serveur FTP - Maildir CHMOD
|
// Serveur FTP - Maildir CHMOD
|
||||||
define('LS_MAILDIR_FTP_MAILDIR_CHMOD','700');
|
define('LS_MAILDIR_FTP_MAILDIR_CHMOD','700');
|
||||||
|
|
|
@ -32,13 +32,16 @@ $GLOBALS['LSerror_code']['MAILDIR_SUPPORT_02']= array (
|
||||||
|
|
||||||
// Autres erreurs
|
// Autres erreurs
|
||||||
$GLOBALS['LSerror_code']['MAILDIR_01']= array (
|
$GLOBALS['LSerror_code']['MAILDIR_01']= array (
|
||||||
'msg' => _("MAILDIR Support : Erreur durant la création de la maildir sur le serveur distant.")
|
'msg' => _("MAILDIR : Erreur durant la création de la maildir sur le serveur distant.")
|
||||||
);
|
);
|
||||||
$GLOBALS['LSerror_code']['MAILDIR_02']= array (
|
$GLOBALS['LSerror_code']['MAILDIR_02']= array (
|
||||||
'msg' => _("MAILDIR Support : Erreur durant la suppression de la maildir sur le serveur distant.")
|
'msg' => _("MAILDIR : Erreur durant la suppression de la maildir sur le serveur distant.")
|
||||||
);
|
);
|
||||||
$GLOBALS['LSerror_code']['MAILDIR_03']= array (
|
$GLOBALS['LSerror_code']['MAILDIR_03']= array (
|
||||||
'msg' => _("MAILDIR Support : Erreur durant le renomage de la maildir sur le serveur distant.")
|
'msg' => _("MAILDIR : Erreur durant le renomage de la maildir sur le serveur distant.")
|
||||||
|
);
|
||||||
|
$GLOBALS['LSerror_code']['MAILDIR_04']= array (
|
||||||
|
'msg' => _("MAILDIR : Erreur durant la récupération du chemin distant de la maildir.")
|
||||||
);
|
);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -87,7 +90,10 @@ $retval=true;
|
||||||
*/
|
*/
|
||||||
function createMaildirByFTP($ldapObject,$dir=null) {
|
function createMaildirByFTP($ldapObject,$dir=null) {
|
||||||
if (!$dir) {
|
if (!$dir) {
|
||||||
$dir = getFData(LS_MAILDIR_FTP_MAILDIR_PATH,$ldapObject,'getValue');
|
$dir = getMaildirPath($ldapObject);
|
||||||
|
if (!$dir) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
$dirs = array(
|
$dirs = array(
|
||||||
$dir.'/cur',
|
$dir.'/cur',
|
||||||
|
@ -114,7 +120,10 @@ $retval=true;
|
||||||
*/
|
*/
|
||||||
function removeMaildirByFTP($ldapObject,$dir=null) {
|
function removeMaildirByFTP($ldapObject,$dir=null) {
|
||||||
if (!$dir) {
|
if (!$dir) {
|
||||||
$dir = getFData(LS_MAILDIR_FTP_MAILDIR_PATH,$ldapObject,'getValue');
|
$dir = getMaildirPath($ldapObject);
|
||||||
|
if (!$dir) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (!removeDirsByFTP(LS_MAILDIR_FTP_HOST,LS_MAILDIR_FTP_PORT,LS_MAILDIR_FTP_USER,LS_MAILDIR_FTP_PWD,$dir)) {
|
if (!removeDirsByFTP(LS_MAILDIR_FTP_HOST,LS_MAILDIR_FTP_PORT,LS_MAILDIR_FTP_USER,LS_MAILDIR_FTP_PWD,$dir)) {
|
||||||
LSerror::addErrorCode('MAILDIR_02');
|
LSerror::addErrorCode('MAILDIR_02');
|
||||||
|
@ -123,6 +132,35 @@ $retval=true;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retourne le chemin distant de la maildir
|
||||||
|
*
|
||||||
|
* @author Benjamin Renard <brenard@easter-eggs.com>
|
||||||
|
*
|
||||||
|
* @param[in] $ldapObject L'objet ldap
|
||||||
|
*
|
||||||
|
* @retval string Le chemin distant de la maildir ou false si il y a un problème
|
||||||
|
*/
|
||||||
|
function getMaildirPath($ldapObject) {
|
||||||
|
$dir = getFData(LS_MAILDIR_FTP_MAILDIR_PATH,$ldapObject,'getValue');
|
||||||
|
|
||||||
|
if (LS_MAILDIR_FTP_MAILDIR_PATH_REGEX != "") {
|
||||||
|
if (ereg(LS_MAILDIR_FTP_MAILDIR_PATH_REGEX,$dir,$regs)) {
|
||||||
|
$dir = $regs[1];
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$dir = "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($dir=="") {
|
||||||
|
LSerror::addErrorCode('MAILDIR_04');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $dir;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Rename Maildir via FTP
|
* Rename Maildir via FTP
|
||||||
*
|
*
|
||||||
|
|
Loading…
Reference in a new issue