From 833fe2bcda809e9c8543e33c3385da16bf5239d7 Mon Sep 17 00:00:00 2001 From: Victor LABORIE Date: Wed, 19 Sep 2018 14:49:14 +0200 Subject: [PATCH] Use Twig for page templating --- htdocs/admin.php | 182 +++------------ htdocs/alias.php | 189 ++------------- htdocs/auth.php | 39 +--- htdocs/compte.php | 247 ++------------------ htdocs/domaine.php | 46 ++-- htdocs/help.php | 60 +---- htdocs/inc/fin.php | 39 ---- htdocs/lib/config.php | 7 + htdocs/superadmin.php | 68 +----- htdocs/tpl/page/account.html | 116 +++++++++ htdocs/tpl/page/add_domain.html | 22 ++ htdocs/tpl/page/alias.html | 63 +++++ htdocs/{inc/haut.php => tpl/page/base.html} | 43 +++- htdocs/tpl/page/domain.html | 37 +++ htdocs/tpl/page/help.html | 52 +++++ htdocs/tpl/page/list_account.html | 59 +++++ htdocs/tpl/page/list_alias.html | 31 +++ htdocs/tpl/page/list_domain.html | 43 ++++ htdocs/tpl/page/login.html | 29 +++ htdocs/{inc/debut.php => tpl/page/nav.html} | 25 +- htdocs/tpl/page/notif.html | 14 ++ 21 files changed, 634 insertions(+), 777 deletions(-) delete mode 100644 htdocs/inc/fin.php create mode 100644 htdocs/tpl/page/account.html create mode 100644 htdocs/tpl/page/add_domain.html create mode 100644 htdocs/tpl/page/alias.html rename htdocs/{inc/haut.php => tpl/page/base.html} (54%) create mode 100644 htdocs/tpl/page/domain.html create mode 100644 htdocs/tpl/page/help.html create mode 100644 htdocs/tpl/page/list_account.html create mode 100644 htdocs/tpl/page/list_alias.html create mode 100644 htdocs/tpl/page/list_domain.html create mode 100644 htdocs/tpl/page/login.html rename htdocs/{inc/debut.php => tpl/page/nav.html} (60%) create mode 100644 htdocs/tpl/page/notif.html diff --git a/htdocs/admin.php b/htdocs/admin.php index f22b192..3fa6be1 100644 --- a/htdocs/admin.php +++ b/htdocs/admin.php @@ -11,51 +11,38 @@ if (empty($_GET['domain'])) { exit(1); } -include("inc/haut.php"); -include("inc/debut.php"); - if (!empty($_POST['account'])) { $account = htmlentities(strip_tags($_POST['account']),ENT_NOQUOTES); - - print '
'; - print ''; - print ''; - print '
'; + $alerts[] = array('type' => 1, 'message' => "Voulez vous vraiment supprimer le compte $account ?"); + $alerts[] = array('type' => 1, 'message' => "
getName()."&viewonly=1\"> / getName()."&viewonly=1\">Annuler
"); } if (!empty($_POST['alias'])) { $alias = htmlentities(strip_tags($_POST['alias']),ENT_NOQUOTES); - - print '
'; - print ''; - print ''; - print '
'; + $alerts[] = array('type' => 1, 'message' => "Voulez vous vraiment supprimer l'alias $alias ?"); + $alerts[] = array('type' => 1, 'message' => "
getName()."&viewonly=2\"> / getName()."&viewonly=2\">Annuler
"); } if (!empty($_POST['delete'])) { $account = htmlentities(strip_tags($_POST['delete']),ENT_NOQUOTES); - print '
'; - print ''; + $alerts[] = array('type' => 1, 'message' => "Suppression du compte $account..."); try { $domain->delAccount($account); - print ''; + $alerts[] = array('type' => 0, 'message' => "Suppression effectué."); } catch (Exception $e) { - print ''; + $alerts[] = array('type' => 2, 'message' => $e->getMessage()); } - print '
'; } if (!empty($_POST['delalias'])) { $alias = htmlentities(strip_tags($_POST['delalias']),ENT_NOQUOTES); - print '
'; - print ''; + $alerts[] = array('type' => 1, 'message' => "Suppression de l'alias $alias..."); try { $domain->delAlias($alias); - print ''; + $alerts[] = array('type' => 0, 'message' => "Suppression effectué."); } catch (Exception $e) { - print ''; + $alerts[] = array('type' => 2, 'message' => $e->getMessage()); } - print '
'; } if (!empty($_POST['isactive']) && $server->isSuperAdmin()) { @@ -64,135 +51,34 @@ if (!empty($_POST['isactive']) && $server->isSuperAdmin()) { $domain->update($active); header('Location: admin.php?domain='.$domain->getName()); } catch (Exception $e) { - print ''; + $alerts[] = array('type' => 2, 'message' => $e->getMessage()); } } -?> -
-
- getName().'">'; - if ($server->isSuperAdmin()) { - if (!$domain->isactive()) { - print '   '; - } else { - print '   '; - } - } - ?> -     +if ( (!isset($_GET['viewonly'])) || ($_GET['viewonly']==1) ) { - +print $twig->render('list_account.html', array( + 'page_name' => $config['global']['name'] + ,'alerts' => $alerts + ,'login' => $server->getLogin() + ,'isSuperAdmin' => $server->isSuperAdmin() + ,'domain' => $domain->getName() + ,'active' => $domain->isActive() + ,'accounts' => $domain->getAccounts() + ,'view' => 'account' +)); - - -
-
-
-
- - -
-
- render('list_alias.html', array( + 'page_name' => $config['global']['name'] + ,'alerts' => $alerts + ,'login' => $server->getLogin() + ,'isSuperAdmin' => $server->isSuperAdmin() + ,'domain' => $domain->getName() + ,'active' => $domain->isActive() + ,'aliases' => $domain->getAlias() + ,'view' => 'alias' +)); - ?> - -

Liste des comptes :


- -
- - - - - - - - - - - - - - - - getAccounts(); - foreach ($accounts as $account) { - print ''; - if ($account->isActive()) { - print ''; - } else { - print ''; - } - if ($account->isAdmin()) { - print ''; - } else { - print ''; - } - if ($account->isCourier()) { - print ''; - } else { - print ''; - } - if ($account->isWebmail()) { - print ''; - } else { - print ''; - } - if ($account->isAuthSmtp()) { - print ''; - } else { - print ''; - } - print ''; - print ''; - print ''; - } - print "
Nom du compteActifAdminPOP / IMAPWebmailAuth SMTPQuotaSuppr
' .$account->getName().' <'.$account->getUid().'>'.$account->getQuota().'
"; - } elseif ( (isset($_GET['viewonly'])) && ($_GET['viewonly']==2) ) { - - ?> - -

Liste des alias/groupe de diffusion :

- -
- - - - - - - - - - - - getAlias(); - foreach ($aliases as $alias) { - print ''; - if ($alias->isActive()) { - print ''; - } else { - print ''; - } - print ''; - print ''; - } - print "
Nom de l'alias/groupe de diffusionActifSuppr
' .$alias->getname(). '
"; - } - ?> - -
- - +} diff --git a/htdocs/alias.php b/htdocs/alias.php index a5d51f9..598668e 100644 --- a/htdocs/alias.php +++ b/htdocs/alias.php @@ -6,9 +6,6 @@ require_once("lib/config.php"); // Force authentication on this page require_once("lib/auth.php"); -include('inc/haut.php'); -include('inc/debut.php'); - if (!empty($_POST['cn'])) { $cn = (!empty($_GET['alias'])) ? $alias->getName() : htmlentities(strip_tags($_POST['cn']),ENT_NOQUOTES); $actif = (!empty($_POST['isactive'])) ? true : false; @@ -27,185 +24,31 @@ if (!empty($_POST['cn'])) { }); $maildrop = $_POST['maildrop']; - print '
'; - try { if (!empty($_GET['alias'])) { - print "
Modification en cours...
"; + $alerts[] = array('type' => 1, 'message' => "Modification en cours..."); $alias->update($actif,$mailaccept,$maildrop); header('Location: alias.php?domain='.$domain->getName().'&alias='.$alias->getName()); } else { - print "
Ajout en cours...
"; + $alerts[] = array('type' => 1, 'message' => "Ajout en cours..."); $domain->addAlias($cn,$actif,$mailaccept,$maildrop); - print "
Ajout effectué.
"; - print ''; + $alerts[] = array('type' => 0, 'message' => "Ajout effectué"); + $alerts[] = array('type' => 0, 'message' => ''); } } catch (Exception $e) { - print ''; + $alerts[] = array('type' => 2, 'message' => $e->getMessage()); } - print "
"; - } -if (isset($_GET['alias'])) { - print "
"; - print '

Modification de l\'alias '.$alias->getName().'

'; - - print '
'; - - print ''; - - print ""; - - print ""; - - foreach($alias->getAliases() as $mailaccept) { - print " - "; - } - - print " - "; - - print " - "; - - print " - "; - - foreach($alias->getRedirections() as $red) { - print " - "; - } - - print " - "; - print " - "; - print " - "; - - print ""; - - $isactive= ($alias->isActive()) ? 'checked="checked"' : ''; - print " - "; - - print ""; - - print "
"; - print "

Ajoutez/modifiez/supprimez les mails acceptés en entrée).
- Un minimum d'un mail est requis. Mêmes instructions
- pour les redirections (compte(s) dans le(s)quel(s) est/sont délivré(s) les mails). -

"; - print "
Mail accepté en entrée :"; - print "@" .$domain->getName(); - - print "
Création d'un nouveau mail accepté en entrée :"; - print "@" .$domain->getName(); - print "
Création d'un nouveau mail accepté en entrée :"; - print "@" .$domain->getName(); - print "
Création d'un nouveau mail accepté en entrée :"; - print "@" .$domain->getName(); - print "
Mails entrants redirigés vers : -
Nouvelle redirection vers :
Nouvelle redirection vers :
Nouvelle redirection vers :
"; - print "

Activer/désactiver l'alias

"; - print "
Alias actif :
 ,"; - print "

"; - print "
"; - print '
'; -} else { - -?> - -
- -

Ajout d'un alias

- -
- -

Remplissez lez champs.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Nom (unique) de l'alias :
Alias : -getName(); -?> -
Alias : -getName(); -?> -
Alias : -getName(); -?> -
Alias : -getName(); -?> -
Alias : -getName(); -?> -
Redirection :
Redirection :
Redirection :
Redirection :
Redirection :
-

Activer/désactiver l'alias

-
Alias actif :
  -

-
-
- -
- - +print $twig->render('alias.html', array( + 'page_name' => $config['global']['name'] + ,'alerts' => $alerts + ,'login' => $server->getLogin() + ,'isSuperAdmin' => $server->isSuperAdmin() + ,'domain' => $domain->getName() + ,'name' => !empty($alias) ? $alias->getName() : NULL + ,'active' => !empty($alias) ? $alias->isActive() : true + ,'aliases' => !empty($alias) ? $alias->getAliases() : NULL + ,'maildrops' => !empty($alias) ? $alias->getRedirections() : NULL +)); diff --git a/htdocs/auth.php b/htdocs/auth.php index 6edb2b7..4c8bc27 100644 --- a/htdocs/auth.php +++ b/htdocs/auth.php @@ -7,10 +7,10 @@ session_name('EVOADMIN_SESS'); session_start(); ob_start(); -include('inc/haut.php'); -if (isset($_SESSION['login'])) { - print ""; +$logout = isset($_SESSION['login']) ? true : false; + +if ($logout) { session_unset('EVOADMIN_SESS'); session_destroy(); } @@ -25,35 +25,14 @@ if (!empty($_POST['login'])) { header("location: superadmin.php\n\n"); exit(0); } catch (Exception $e) { - print ''; + $alerts[] = array('type' => 2, 'message' => $e->getMessage()); } } -?> -
-
-
- Responsive image -
-
-
- - -
-
- - -
-
- -
-
-
-
+print $twig->render('login.html', array( + 'page_name' => $config['global']['name'].' - Login' + ,'alerts' => $alerts + ,'logout' => $logout +)); - diff --git a/htdocs/compte.php b/htdocs/compte.php index c7db3ae..4a88897 100644 --- a/htdocs/compte.php +++ b/htdocs/compte.php @@ -6,18 +6,13 @@ require_once("lib/config.php"); // Force authentication on this page require_once("lib/auth.php"); -include('inc/haut.php'); -include('inc/debut.php'); - if (!empty($_POST['cn'])) { // Verification coherence des mots de passe if ( $_POST['pass1'] != $_POST['pass2'] ) { - print "
Erreur, vous avez tape deux mots de passe differents
"; + $alerts[] = array('type' => 2, 'message' => "Erreur, vous avez tape deux mots de passe differents"); exit(1); } - print "
"; - $uid = (!empty($_GET['account'])) ? $account->getUid() : htmlentities(strip_tags($_POST['uid']),ENT_NOQUOTES); $cn = htmlentities(strip_tags($_POST['cn']),ENT_NOQUOTES); $password = (!empty($_POST['pass1'])) ? $_POST['pass1'] : NULL; @@ -29,232 +24,32 @@ if (!empty($_POST['cn'])) { try { if (!empty($_GET['account'])) { - print "
Modification en cours...
"; + $alerts[] = array('type' => 1, 'message' => "Modification en cours..."); $account->update($cn,$password,$actif,$admin,$actif,$courier,$webmail,$authsmtp); header('Location: compte.php?domain='.$domain->getName().'&account='.$account->getUid()); } else { - print "
Ajout en cours...
"; + $alerts[] = array('type' => 1, 'message' => "Ajout en cours..."); $domain->addAccount($uid,$cn,$password,$actif,$admin,$actif,$courier,$webmail,$authsmtp); - print "
Ajout effectué.
"; - print ''; + $alerts[] = array('type' => 0, 'message' => 'Ajout effectué '); } } catch (Exception $e) { - print ''; + $alerts[] = array('type' => 2, 'message' => $e->getMessage()); } - - print "
"; } -if (isset($_GET['account'])) { - print "
"; - print "

Modification du compte ".$account->getUid()."


"; - - print"
Modifiez les champs que vous désirez changer.
[*] indique ceux qui ne doivent pas être nuls.
Vous pouvez réinitialiser le mot de passe si besoin.
"; - - print "
"; - - print "
"; - print ""; - print "
"; - print "
"; - print "
"; - - print "
"; - print ""; - print "
"; - print "
"; - print "
"; - - print "
"; - print ""; - print "
"; - print "
"; - print "
"; - - print "
Ajoutez/modifiez/supprimez les alias (mails acceptés en entrée).
Un minimum d'un alias est requis. Mêmes instructions
pour les redirections (compte(s) dans le(s)quel(s) est/sont délivré(s) les mails).
"; - foreach ($account->getAliases() as $aliase) { - print "
"; - print ""; - print "
"; - print "
"; - print "@" .$domain->getName(); - print "
"; - print "
"; - - } - - print "
"; - print ""; - print "
"; - print "
"; - print "@" .$domain->getName(); - print "
"; - print "
"; - - - foreach ($account->getRedirections() as $red) { - print "
"; - print ""; - print "
"; - print "
"; - print "
"; - print "
"; - } - - print "
"; - print ""; - print "
"; - print "
"; - print "
"; - - print "
Modifiez les autorisations du compte si besoin.
"; - - $isactive = ($account->isActive()) ? 'checked=checked' : ''; - print "
"; - print ""; - print "
"; - print "
"; - print "
"; - - $isadmin = ($account->isAdmin()) ? 'checked="checked"' : ''; - print "
"; - print ""; - print "
"; - print "
"; - print "
"; - - $courieractive = ($account->isCourier()) ? 'checked="checked"' : ''; - print "
"; - print ""; - print "
"; - print "
"; - print "
"; - - $webmailactive = ($account->isWebmail()) ? 'checked="checked"' : ''; - print "
"; - print ""; - print "
"; - print "
"; - print "
"; - - $authsmtpactive = ($account->isAuthSmtp()) ? 'checked="checked"' : ''; - print "
"; - print ""; - print "
"; - print "
"; - print "
"; - - #$amavisBypassSpamChecks= ($account->isAmavis())) ? 'checked="checked"' : ''; - #print "
"; - #print ""; - #print "
"; - #print "
"; - #print "
"; - - print "
"; - - print '
'; - print '
'; -} else { -?> - -
- -

Ajout d'un compte


- -
- - - -
- -
-
getName(); ?>
-
- -
- -
-
-
- -
- -
-
-
- -
- -
-
-
-
En plus du mail utilisant le login, vous pouvez ajouter des alias.
- -
- -
-
getName(); ?>
-
- -
- -
-
getName(); ?>
-
- -
- -
-
getName(); ?>
-
- -
Cochez les cases pour choisir les autorisations du compte.
- -
- -
-
-
- -
- -
-
-
- -
- -
-
-
- -
- -
-
-
- -
- -
-
-
- - - - - -
- -
- -
- - +print $twig->render('account.html', array( + 'page_name' => $config['global']['name'] + ,'alerts' => $alerts + ,'login' => $server->getLogin() + ,'isSuperAdmin' => $server->isSuperAdmin() + ,'domain' => $domain->getName() + ,'uid' => !empty($account) ? $account->getUid() : NULL + ,'name' => !empty($account) ? $account->getName() : NULL + ,'aliases' => !empty($account) ? $account->getAliases() : array() + ,'maildrops' => !empty($account) ? $account->getRedirections() : array() + ,'active' => !empty($account) ? $account->isActive() : true + ,'admin' => !empty($account) ? $account->isAdmin() : false + ,'courier' => !empty($account) ? $account->isCourier() : true + ,'webmail' => !empty($account) ? $account->isWebmail() : true + ,'authsmtp' => !empty($account) ? $account->isAuthSmtp() : true +)); diff --git a/htdocs/domaine.php b/htdocs/domaine.php index 27ceaf1..158dbf0 100644 --- a/htdocs/domaine.php +++ b/htdocs/domaine.php @@ -6,51 +6,31 @@ require_once("lib/config.php"); // Force authentication on this page require_once("lib/auth.php"); -include("inc/haut.php"); -include("inc/debut.php"); - if (!$server->isSuperAdmin()) { - print "
Vous n'avez pas les droits pour cette page
"; + $alerts[] = array('type' => 2, 'message' => "Vous n'avez pas les droits pour cette page"); # EvoLog::log("Access denied on domaine.php"); - include("inc/fin.php"); exit(1); } -// Ajouter un domaine +$domain = NULL; + if (!empty($_POST['domain'])) { $domain = htmlentities(strip_tags($_POST['domain']),ENT_NOQUOTES); - - print "
"; - print "
Ajout en cours du domaine ".$domain." ...
"; + + $alerts[] = array('type' => 1, 'message' => "Ajout en cours du domaine $domain ..."); try { $active = (!empty($_POST['isactive'])) ? true : false; $server->addDomain($domain, $active); - print ''; + $alerts[] = array('type' => 0, 'message' => "Ajout effectué."); } catch (Exception $e_ad) { - print ''; + $alerts[] = array('type' => 2, 'message' => $e_ad->getMessage()); } - - print "
"; } -// Formulaire d'ajout d'un domaine -?> - -
-

Ajout d'un domaine

-
- -
- -
-
-
- -
-
-
-
-
- - +print $twig->render('add_domain.html', array( + 'page_name' => $config['global']['name'] + ,'alerts' => $alerts + ,'login' => $server->getLogin() + ,'isSuperAdmin' => $server->isSuperAdmin() +)); diff --git a/htdocs/help.php b/htdocs/help.php index 502b222..e4c321c 100644 --- a/htdocs/help.php +++ b/htdocs/help.php @@ -6,56 +6,10 @@ require_once("lib/config.php"); // Force authentication on this page require_once("lib/auth.php"); -include('inc/haut.php'); -include('inc/debut.php'); - -?> - -
- - -

Aide

- - Cette aide devrait vous permettre de comprendre le fonctionnement de cette interface. - -

Créer un compte mail

- -

Vous devez choisir un mot de passe et éventuellement des alias. Veillez à entrer des alias avec une syntaxe valide et un mot de passe valide et assez complexe. Vous pouvez également choisir de donner les droits "Admin" en cochant la case Admin, c'est-à-dire permettre à l'utilisateur de se connecter à cette interface pour pouvoir ajouter/supprimer des mails/alias.
- Vous devez également choisir un Login qui ne sera plus modifiable par la suite. Ce login et le mot de passe serviront à se connecter au Webmail, serveur SMTP, serveur POP et serveur IMAP et éventuellement à cette interface (si l'utilisateur a les droits "Admin"). -

- -

Créer un alias

- -

Vous devez choisir un alias et un mail valide pour rediriger les mails. Prenez bien garde à entrer un mail valide sinon les mails ne vous parviendront jamais.

- -

FAQ

- - Cette Foire-Aux-Questions (FAQ) devrait répondre à vos questions. Au fil du temps, de nouvelles questions/réponses seront ajoutées. Posez vos questions à . - -

Qu'est-ce qu'une syntaxe valide pour un compte mail ?

- - Le début du mail (avant le @), doit respecter les règles suivantes : -
    -
  • être compris entre 3 et 30 caractères
  • -
  • n'avoir que des caractères de types lettre minuscules ou chiffres
  • -
  • les caractères tiret (-), point (.) et underscore (_) sont permis sauf en début et fin
  • -
-
- -

Qu'est-ce qu'un mot de passe valide ?

- - Votre mot de passe doit répondre aux règles suivantes : -
    -
  • avoir entre 5 et 12 caractères
  • -
  • N'utiliser ques des caractères imprimables c'est-à-dire des lettres (majuscules, minuscules ou accentuées), des chiffres ou les caractères suivants : -
    []!"#$%&'()*+,-./:;<=>?@\^_`{|}~
    -
-
- -

Qu'est-ce qu'un mot de passe assez complexe ?

- - Outre d'avoir un mot de passe assez long (voir question précédente), il est fortement conseillé d'utilisé au moins un chiffre, au moins une lettre minuscule, au moins une lettre majuscule et au moins un caractères "spécial". De plus, l'utilisation de suites de caractères "connues" (mots, dates, noms, etc.) est fortement déconseillée. - -
- - +print $twig->render('help.html', array( + 'page_name' => $config['global']['name'] + ,'alerts' => $alerts + ,'login' => $server->getLogin() + ,'isSuperAdmin' => $server->isSuperAdmin() + ,'notif_mail' => $config['global']['mail'] +)); diff --git a/htdocs/inc/fin.php b/htdocs/inc/fin.php deleted file mode 100644 index 1b0107a..0000000 --- a/htdocs/inc/fin.php +++ /dev/null @@ -1,39 +0,0 @@ - - -
-
-

- Evolix -
Hébergement et Infogérance Open Source -

-
- - - - - diff --git a/htdocs/lib/config.php b/htdocs/lib/config.php index 96a57d8..75e8743 100644 --- a/htdocs/lib/config.php +++ b/htdocs/lib/config.php @@ -13,3 +13,10 @@ $config = parse_ini_file('../config/config.ini', true); Logger::configure($config['global']['log_level']); MailNotify::configure($config['global']); + +$loader = new Twig_Loader_Filesystem('tpl/page'); +$twig = new Twig_Environment($loader, array( + 'cache' => false +)); + +$alerts = array(); diff --git a/htdocs/superadmin.php b/htdocs/superadmin.php index 8b1ea08..d3b7d06 100644 --- a/htdocs/superadmin.php +++ b/htdocs/superadmin.php @@ -6,72 +6,28 @@ require_once("lib/config.php"); // Force authentication on this page require_once("lib/auth.php"); -include('inc/haut.php'); -include('inc/debut.php'); - - if (!empty($_POST['domain'])) { $domain = htmlentities(strip_tags($_POST['domain']),ENT_NOQUOTES); - print '
'; - print ''; - print ''; - print '
'; + $alerts[] = array('type' => 1, 'message' => "Voulez vous vraiment supprimer le domaine $domain ?"); + $alerts[] = array('type' => 1, 'message' => "
/ Annuler
"); } if (!empty($_POST['delete'])) { $domain = htmlentities(strip_tags($_POST['delete']),ENT_NOQUOTES); - print '
'; - print ''; + $alerts[] = array('type' => 1, 'message' => "Suppression du domaine $domain ..."); try { $server->delDomain($domain); - print ''; + $alerts[] = array('type' => 0, 'message' => 'Suppression effectué.'); } catch (Exception $e_ad) { - print ''; + $alerts[] = array('type' => 2, 'message' => $e_ad->getMessage()); } - print '
'; } -?> - -
-

Liste des domaines administrables :


-
- - - - - - - - - - - - - - getDomains(); - foreach ($domains as $domain) { - print ''; - if ($domain->isActive()) { - print ''; - } else { - print ''; - } - print ''; - print ''; - //print ''; - print ''; - print ''; - print ''; - print ''; - } - ?> - -
Nom du domaineActifNombre de comptesdont comptes mailNombre d'alias mailTaille / QuotaSuppr.
' .$domain->getName(). '' .$domain->getNbAccounts(). '' .$domain->getNbMailAccounts(). '' .$domain->getNbSmbAccounts(). '' .$domain->getNbMailAlias(). '' .$domain->getQuota(). '
-
-
- - +print $twig->render('list_domain.html', array( + 'page_name' => $config['global']['name'] + ,'alerts' => $alerts + ,'login' => $server->getLogin() + ,'isSuperAdmin' => $server->isSuperAdmin() + ,'domains' => $server->getDomains() +)); diff --git a/htdocs/tpl/page/account.html b/htdocs/tpl/page/account.html new file mode 100644 index 0000000..cb7fd77 --- /dev/null +++ b/htdocs/tpl/page/account.html @@ -0,0 +1,116 @@ +{% extends 'base.html' %} + +{% block body %} +{% include 'nav.html' %} + +
+{% include 'notif.html' %} + +

{% if uid is null %}Ajout d'un compte{% else %}Modification du compte {{ uid }}{% endif %}

+ +
+ +
+ + {% if uid is null %} +
+ +
+
@{{ domain }}
+
+ {% endif %} + +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
En plus du mail utilisant le login, vous pouvez ajouter des alias.
+ + {% for alias in aliases %} +
+ +
+
@{{ domain }}
+
+ {% endfor %} + +
+ +
+
@{{ domain }}
+
+ + {% for maildrop in maildrops %} +
+ +
+
+
+ {% endfor %} + +
+ +
+
+
+ +
Cochez les cases pour choisir les autorisations du compte.
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ + + +
+ +
+ +
+{% endblock %} diff --git a/htdocs/tpl/page/add_domain.html b/htdocs/tpl/page/add_domain.html new file mode 100644 index 0000000..ad190e8 --- /dev/null +++ b/htdocs/tpl/page/add_domain.html @@ -0,0 +1,22 @@ +{% extends 'base.html' %} + +{% block body %} +{% include 'nav.html' %} + +
+{% include 'notif.html' %} +

Ajout d'un domaine

+
+
+
+ +
+
+
+ +
+
+
+
+
+{% endblock %} diff --git a/htdocs/tpl/page/alias.html b/htdocs/tpl/page/alias.html new file mode 100644 index 0000000..95273c2 --- /dev/null +++ b/htdocs/tpl/page/alias.html @@ -0,0 +1,63 @@ +{% extends 'base.html' %} + +{% block body %} +{% include 'nav.html' %} + +
+{% include 'notif.html' %} + +

{% if name is null %}Ajout d'un alias{% else %}Modification de l'alias {{ name }}{% endif %}

+ +
+ +
+ + {% if name is null %} +
+ +
+
+
+ {% endif %} + + {% for alias in aliases %} +
+ +
+
@{{ domain }}
+
+ {% endfor %} + +
+ +
+
@{{ domain }}
+
+ + {% for maildrop in maildrops %} +
+ +
+
+
+ {% endfor %} + +
+ +
+
+
+ +
Activer/désactiver l'alias
+ +
+ +
+
+
+ +
+
+ +
+{% endblock %} diff --git a/htdocs/inc/haut.php b/htdocs/tpl/page/base.html similarity index 54% rename from htdocs/inc/haut.php rename to htdocs/tpl/page/base.html index 3a6de67..c9a7e16 100644 --- a/htdocs/inc/haut.php +++ b/htdocs/tpl/page/base.html @@ -4,7 +4,7 @@ - <?php print $config['global']['name']; ?> + {{ page_name }} @@ -15,4 +15,45 @@ +
+ {% block body %}{% endblock %} +
+ +
+
+

+ Evolix +
Hébergement et Infogérance Open Source +

+
+ + + + + diff --git a/htdocs/tpl/page/domain.html b/htdocs/tpl/page/domain.html new file mode 100644 index 0000000..0f5183c --- /dev/null +++ b/htdocs/tpl/page/domain.html @@ -0,0 +1,37 @@ +{% extends 'base.html' %} + +{% block body %} +{% include 'nav.html' %} + +
+{% include 'notif.html' %} + +
+
+ {% if isSuperAdmin %} + {% if active %} +     + {% else %} +     + {% endif %} + {% endif %} +     + + +
+
+
+
+
+ + +
+
+ + {% block list %}{% endblock %} + +
+{% endblock %} diff --git a/htdocs/tpl/page/help.html b/htdocs/tpl/page/help.html new file mode 100644 index 0000000..b545580 --- /dev/null +++ b/htdocs/tpl/page/help.html @@ -0,0 +1,52 @@ +{% extends 'base.html' %} + +{% block body %} +{% include 'nav.html' %} + +
+{% include 'notif.html' %} + +

Aide

+ +
+ +

Créer un compte mail

+ +

Vous devez choisir un mot de passe et éventuellement des alias. Veillez à entrer des alias avec une syntaxe valide et un mot de passe valide et assez complexe. Vous pouvez également choisir de donner les droits "Admin" en cochant la case Admin, c'est-à-dire permettre à l'utilisateur de se connecter à cette interface pour pouvoir ajouter/supprimer des mails/alias.
+ Vous devez également choisir un Login qui ne sera plus modifiable par la suite. Ce login et le mot de passe serviront à se connecter au Webmail, serveur SMTP, serveur POP et serveur IMAP et éventuellement à cette interface (si l'utilisateur a les droits "Admin"). +

+ +

Créer un alias

+ +

Vous devez choisir un alias et un mail valide pour rediriger les mails. Prenez bien garde à entrer un mail valide sinon les mails ne vous parviendront jamais.

+ +

FAQ

+ +
+ +

Qu'est-ce qu'une syntaxe valide pour un compte mail ?

+ + Le début du mail (avant le @), doit respecter les règles suivantes : +
    +
  • être compris entre 3 et 30 caractères
  • +
  • n'avoir que des caractères de types lettre minuscules ou chiffres
  • +
  • les caractères tiret (-), point (.) et underscore (_) sont permis sauf en début et fin
  • +
+
+ +

Qu'est-ce qu'un mot de passe valide ?

+ + Votre mot de passe doit répondre aux règles suivantes : +
    +
  • avoir entre 5 et 12 caractères
  • +
  • N'utiliser ques des caractères imprimables c'est-à-dire des lettres (majuscules, minuscules ou accentuées), des chiffres ou les caractères suivants : +
    []!"#$%&'()*+,-./:;<=>?@\^_`{|}~
    +
+
+ +

Qu'est-ce qu'un mot de passe assez complexe ?

+ + Outre d'avoir un mot de passe assez long (voir question précédente), il est fortement conseillé d'utilisé au moins un chiffre, au moins une lettre minuscule, au moins une lettre majuscule et au moins un caractères "spécial". De plus, l'utilisation de suites de caractères "connues" (mots, dates, noms, etc.) est fortement déconseillée. + +
+{% endblock %} diff --git a/htdocs/tpl/page/list_account.html b/htdocs/tpl/page/list_account.html new file mode 100644 index 0000000..24e1f75 --- /dev/null +++ b/htdocs/tpl/page/list_account.html @@ -0,0 +1,59 @@ +{% extends 'domain.html' %} + +{% block list %} + +

Liste des comptes :


+ +
+ + + + + + + + + + + + + + + + {% for account in accounts %} + + + {% if account.active %} + + {% else %} + + {% endif %} + {% if account.admin %} + + {% else %} + + {% endif %} + {% if account.courrier %} + + {% else %} + + {% endif %} + {% if account.webmail %} + + {% else %} + + {% endif %} + {% if account.authsmtp %} + + {% else %} + + {% endif %} + + + + {% endfor %} +
Nom du compteActifAdminPOP / IMAPWebmailAuth SMTPQuotaSuppr
{{ account.name }} <{{account.uid }}>{{ account.quota }} + +
+ +{% endblock %} diff --git a/htdocs/tpl/page/list_alias.html b/htdocs/tpl/page/list_alias.html new file mode 100644 index 0000000..6dea79e --- /dev/null +++ b/htdocs/tpl/page/list_alias.html @@ -0,0 +1,31 @@ +{% extends 'domain.html' %} + +{% block list %} + +

Liste des alias/groupe de diffusion :


+ +
+ + + + + + + + + + + {% for alias in aliases %} + + {% if alias.active %} + + {% else %} + + {% endif %} + + + {% endfor %} +
Nom de l'alias/groupe de diffusionActifSuppr
{{ alias.name }}
+ + +{% endblock %} diff --git a/htdocs/tpl/page/list_domain.html b/htdocs/tpl/page/list_domain.html new file mode 100644 index 0000000..310fc24 --- /dev/null +++ b/htdocs/tpl/page/list_domain.html @@ -0,0 +1,43 @@ +{% extends 'base.html' %} + +{% block body %} +{% include 'nav.html' %} + +
+{% include 'notif.html' %} + +

Liste des domaines administrables :


+
+ + + + + + + + + + + + + + + {% if domain.active %} + + {% else %} + + {% endif %} + + + + + + + {% endfor %} + +
Nom du domaineActifNombre de comptesdont comptes mailNombre d'alias mailTaille / QuotaSuppr.
{{ domain.name }}{{ domain.NbAccounts }}{{ domain.NbMailAccounts }}{{ domain.NbMailAlias }}{{ domain.getQuota }}
+
+
+{% endblock %} diff --git a/htdocs/tpl/page/login.html b/htdocs/tpl/page/login.html new file mode 100644 index 0000000..cc862b5 --- /dev/null +++ b/htdocs/tpl/page/login.html @@ -0,0 +1,29 @@ +{% extends 'base.html' %} + +{% block body %} +{% include 'notif.html' %} +{% if logout %} + +{% endif %} + +
+
+
+ Responsive image +
+
+
+ + +
+
+ + +
+
+ +
+
+
+
+{% endblock %} diff --git a/htdocs/inc/debut.php b/htdocs/tpl/page/nav.html similarity index 60% rename from htdocs/inc/debut.php rename to htdocs/tpl/page/nav.html index 5ccb993..bfb1cb1 100644 --- a/htdocs/inc/debut.php +++ b/htdocs/tpl/page/nav.html @@ -8,27 +8,16 @@ - - - - - - - - - diff --git a/htdocs/tpl/page/notif.html b/htdocs/tpl/page/notif.html new file mode 100644 index 0000000..3c975f0 --- /dev/null +++ b/htdocs/tpl/page/notif.html @@ -0,0 +1,14 @@ +{% for alert in alerts %} +{% if alert.type == 3 %} + +{% endif %} +{% if alert.type == 0 %} + +{% endif %} +{% if alert.type == 1 %} + +{% endif %} +{% if alert.type == 2 %} + +{% endif %} +{% endfor %}