Use Twig for page templating
This commit is contained in:
parent
0b894d33b8
commit
833fe2bcda
182
htdocs/admin.php
182
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 '<div class="container"><form name="del "method="post" action="admin.php?domain='.$domain->getName().'">';
|
||||
print '<div class="alert alert-warning" role="alert">Voulez vous vraiment supprimer le compte '.$account.' ?</div>';
|
||||
print '<div class="alert alert-warning" role="alert"><button type="submit" name="delete" value="'.$account.'">Confirmer</button> / <a href="admin.php?domain='.$domain->getName().'">Annuler</a></div>';
|
||||
print '</form></div>';
|
||||
$alerts[] = array('type' => 1, 'message' => "Voulez vous vraiment supprimer le compte $account ?");
|
||||
$alerts[] = array('type' => 1, 'message' => "<form name=\"del\" method=\"post\" action=\"admin.php?domain=".$domain->getName()."&viewonly=1\"><button type=\"submit\" name=\"delete\" value=\"$account\">Confirmer</button> / <a href=\"admin.php?domain=".$domain->getName()."&viewonly=1\">Annuler</a></form>");
|
||||
}
|
||||
|
||||
if (!empty($_POST['alias'])) {
|
||||
$alias = htmlentities(strip_tags($_POST['alias']),ENT_NOQUOTES);
|
||||
|
||||
print '<div class="container"><form name="del "method="post" action="admin.php?domain='.$domain->getName().'&viewonly=2">';
|
||||
print '<div class="alert alert-warning" role="alert">Voulez vous vraiment supprimer l\'alias '.$alias.' ?</div>';
|
||||
print '<div class="alert alert-warning" role="alert"><button type="submit" name="delalias" value="'.$alias.'">Confirmer</button> / <a href="admin.php?domain='.$domain->getName().'&viewonly=2">Annuler</a></div>';
|
||||
print '</form></div>';
|
||||
$alerts[] = array('type' => 1, 'message' => "Voulez vous vraiment supprimer l'alias $alias ?");
|
||||
$alerts[] = array('type' => 1, 'message' => "<form name=\"del\" method=\"post\" action=\"admin.php?domain=".$domain->getName()."&viewonly=2\"><button type=\"submit\" name=\"delalias\" value=\"$alias\">Confirmer</button> / <a href=\"admin.php?domain=".$domain->getName()."&viewonly=2\">Annuler</a></form>");
|
||||
}
|
||||
|
||||
if (!empty($_POST['delete'])) {
|
||||
$account = htmlentities(strip_tags($_POST['delete']),ENT_NOQUOTES);
|
||||
print '<div class="container">';
|
||||
print '<div class="alert alert-warning" role="alert">Suppression du compte '.$account.' ...</div>';
|
||||
$alerts[] = array('type' => 1, 'message' => "Suppression du compte $account...");
|
||||
try {
|
||||
$domain->delAccount($account);
|
||||
print '<div class="alert alert-success" role="alert">Suppression effectué.</div>';
|
||||
$alerts[] = array('type' => 0, 'message' => "Suppression effectué.");
|
||||
} catch (Exception $e) {
|
||||
print '<div class="alert alert-danger" role="alert">'.$e->getMessage().'</div>';
|
||||
$alerts[] = array('type' => 2, 'message' => $e->getMessage());
|
||||
}
|
||||
print '</div>';
|
||||
}
|
||||
|
||||
if (!empty($_POST['delalias'])) {
|
||||
$alias = htmlentities(strip_tags($_POST['delalias']),ENT_NOQUOTES);
|
||||
print '<div class="container">';
|
||||
print '<div class="alert alert-warning" role="alert">Suppression de l\'alias '.$alias.' ...</div>';
|
||||
$alerts[] = array('type' => 1, 'message' => "Suppression de l'alias $alias...");
|
||||
try {
|
||||
$domain->delAlias($alias);
|
||||
print '<div class="alert alert-success" role="alert">Suppression effectué.</div>';
|
||||
$alerts[] = array('type' => 0, 'message' => "Suppression effectué.");
|
||||
} catch (Exception $e) {
|
||||
print '<div class="alert alert-danger" role="alert">'.$e->getMessage().'</div>';
|
||||
$alerts[] = array('type' => 2, 'message' => $e->getMessage());
|
||||
}
|
||||
print '</div>';
|
||||
}
|
||||
|
||||
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 '<div class="alert alert-danger" role="alert">'.$e->getMessage().'</div>';
|
||||
$alerts[] = array('type' => 2, 'message' => $e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
<div class="container">
|
||||
<div class="text-center">
|
||||
<?php
|
||||
print '<form name="update" method="post" action="admin.php?domain='.$domain->getName().'">';
|
||||
if ($server->isSuperAdmin()) {
|
||||
if (!$domain->isactive()) {
|
||||
print '<button type="submit" name="isactive" value="TRUE" class="btn btn-primary">Activer le domaine</button> ';
|
||||
} else {
|
||||
print '<button type="submit" name="isactive" value="FALSE" class="btn btn-primary">Désactiver le domaine</button> ';
|
||||
}
|
||||
}
|
||||
?>
|
||||
<a href="compte.php?domain=<?php print $domain->getName() ?>"><button type="button" class="btn btn-primary">Ajouter un nouveau compte</button></a>
|
||||
if ( (!isset($_GET['viewonly'])) || ($_GET['viewonly']==1) ) {
|
||||
|
||||
<?php
|
||||
$viewonly1= ( (isset($_GET['viewonly'])) && ($_GET['viewonly']==2) ) ? "" : "selected='selected'";
|
||||
$viewonly2= ( (isset($_GET['viewonly'])) && ($_GET['viewonly']==2) ) ? "selected='selected'" : "";
|
||||
?>
|
||||
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'
|
||||
));
|
||||
|
||||
<a href="alias.php?domain=<?php print $domain->getName() ?>"><button type="button" class="btn btn-primary">Ajouter un nouvel alias/groupe de diffusion</button></a>
|
||||
</form>
|
||||
</div>
|
||||
<hr>
|
||||
<form class='center' action='admin.php' method='GET' name='listing'>
|
||||
<div class="form-group">
|
||||
<input type="hidden" name="domain" value="<?php print $domain->getName() ?>"/>
|
||||
<select class="form-control" name='viewonly' onchange="document.listing.submit()">
|
||||
<option value='1' <?php print $viewonly1; ?>>Liste des comptes</option>
|
||||
<option value='2' <?php print $viewonly2; ?>>Liste des alias/groupe de diffusion</option>
|
||||
</select>
|
||||
</div>
|
||||
</form>
|
||||
<?php
|
||||
} elseif ( (isset($_GET['viewonly'])) && ($_GET['viewonly']==2) ) {
|
||||
|
||||
if ( (!isset($_GET['viewonly'])) || ($_GET['viewonly']==1) ) {
|
||||
print $twig->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'
|
||||
));
|
||||
|
||||
?>
|
||||
|
||||
<h2>Liste des comptes :</h2><hr>
|
||||
|
||||
<form name="del" method="post" action="admin.php?domain=<?php print $domain->getName(); ?>">
|
||||
<table class="table table-striped table-condensed">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><strong>Nom du compte</strong></th>
|
||||
<th width="100px">Actif</th>
|
||||
<th width="100px">Admin</th>
|
||||
<th width="100px">POP / IMAP</th>
|
||||
<th width="100px">Webmail</th>
|
||||
<th width="100px">Auth SMTP</th>
|
||||
<th>Quota</th>
|
||||
<th width="50px">Suppr</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
||||
<?php
|
||||
$accounts = $domain->getAccounts();
|
||||
foreach ($accounts as $account) {
|
||||
print '<tr><td style="text-align:left;"><a href="compte.php?domain='.$domain->getName().'&account='.$account->getUid().'">' .$account->getName().' <'.$account->getUid().'></a></td>';
|
||||
if ($account->isActive()) {
|
||||
print '<td><span class="glyphicon glyphicon-ok"></span></td>';
|
||||
} else {
|
||||
print '<td><span class="glyphicon glyphicon-remove"></span></td>';
|
||||
}
|
||||
if ($account->isAdmin()) {
|
||||
print '<td><span class="glyphicon glyphicon-ok"></span></td>';
|
||||
} else {
|
||||
print '<td><span class="glyphicon glyphicon-remove"></span></td>';
|
||||
}
|
||||
if ($account->isCourier()) {
|
||||
print '<td><span class="glyphicon glyphicon-ok"></span></td>';
|
||||
} else {
|
||||
print '<td><span class="glyphicon glyphicon-remove"></span></td>';
|
||||
}
|
||||
if ($account->isWebmail()) {
|
||||
print '<td><span class="glyphicon glyphicon-ok"></span></td>';
|
||||
} else {
|
||||
print '<td><span class="glyphicon glyphicon-remove"></span></td>';
|
||||
}
|
||||
if ($account->isAuthSmtp()) {
|
||||
print '<td><span class="glyphicon glyphicon-ok"></span></td>';
|
||||
} else {
|
||||
print '<td><span class="glyphicon glyphicon-remove"></span></td>';
|
||||
}
|
||||
print '<td>'.$account->getQuota().'</td>';
|
||||
print '<td><button type="submit" name="account" value="'.$account->getUid().'"><span class="glyphicon glyphicon-trash"></span></button></td>';
|
||||
print '</tr>';
|
||||
}
|
||||
print "</tbody></table></form>";
|
||||
} elseif ( (isset($_GET['viewonly'])) && ($_GET['viewonly']==2) ) {
|
||||
|
||||
?>
|
||||
|
||||
<h2>Liste des alias/groupe de diffusion :</h2>
|
||||
|
||||
<form name="del" method="post" action="admin.php?domain=<?php print $domain->getName(); ?>&viewonly=2">
|
||||
<table class="table table-striped table-condensed">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><strong>Nom de l'alias/groupe de diffusion</strong></th>
|
||||
<th width="100px">Actif</th>
|
||||
<th width="50px">Suppr</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
||||
|
||||
<?php
|
||||
$aliases = $domain->getAlias();
|
||||
foreach ($aliases as $alias) {
|
||||
print '<tr><td style="text-align:left;"><a href="alias.php?domain='.$domain->getName().'&alias='.$alias->getName(). '">' .$alias->getname(). '</a></td>';
|
||||
if ($alias->isActive()) {
|
||||
print '<td><span class="glyphicon glyphicon-ok"></span></td>';
|
||||
} else {
|
||||
print '<td><span class="glyphicon glyphicon-remove"></span></td>';
|
||||
}
|
||||
print '<td><button type="submit" name="alias" value="'.$alias->getName().'"><span class="glyphicon glyphicon-trash"></span></button></td>';
|
||||
print '</tr>';
|
||||
}
|
||||
print "</tbody></table></form>";
|
||||
}
|
||||
?>
|
||||
|
||||
</div>
|
||||
|
||||
<?php include("inc/fin.php"); ?>
|
||||
}
|
||||
|
|
189
htdocs/alias.php
189
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 '<center>';
|
||||
|
||||
try {
|
||||
if (!empty($_GET['alias'])) {
|
||||
print "<div class=\"alert alert-info\" role=\"alert\">Modification en cours...</div>";
|
||||
$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 "<div class=\"alert alert-info\" role=\"alert\">Ajout en cours...</div>";
|
||||
$alerts[] = array('type' => 1, 'message' => "Ajout en cours...");
|
||||
$domain->addAlias($cn,$actif,$mailaccept,$maildrop);
|
||||
print "<div class=\"alert alert-succes\" role=\"alert\">Ajout effectué.</div>";
|
||||
print '<a href="alias.php?domain='.$domain->getName().'&alias='.$cn.'"><button class="btn btn-primary">Voir l\'alias créé</button></a>';
|
||||
$alerts[] = array('type' => 0, 'message' => "Ajout effectué");
|
||||
$alerts[] = array('type' => 0, 'message' => '<a href="alias.php?domain='.$domain->getName().'&alias='.$cn.'"><button class="btn btn-primary">Voir l\'alias créé</button></a>');
|
||||
}
|
||||
} catch (Exception $e) {
|
||||
print '<div class="alert alert-danger" role="alert">'.$e->getMessage().'</div>';
|
||||
$alerts[] = array('type' => 2, 'message' => $e->getMessage());
|
||||
}
|
||||
|
||||
print "</center>";
|
||||
|
||||
}
|
||||
|
||||
if (isset($_GET['alias'])) {
|
||||
print "<center>";
|
||||
print '<h4>Modification de l\'alias '.$alias->getName().'</h4>';
|
||||
|
||||
print '<form name="add" action="alias.php?domain='.$domain->getName().'&alias='.$alias->getName().'" method="post">';
|
||||
|
||||
print '<input type="hidden" name="cn" value="'.$alias->getName().'"/>';
|
||||
|
||||
print "<table>";
|
||||
|
||||
print "<tr><td colspan='2'>";
|
||||
print "<p class='italic'>Ajoutez/modifiez/supprimez les mails acceptés en entrée).<br />
|
||||
Un minimum d'un mail est requis. Mêmes instructions<br />
|
||||
pour les redirections (compte(s) dans le(s)quel(s) est/sont délivré(s) les mails).
|
||||
</p>";
|
||||
print "</td></tr>";
|
||||
|
||||
foreach($alias->getAliases() as $mailaccept) {
|
||||
print "<tr><td align='right'>Mail accepté en entrée :</td>
|
||||
<td align='left'><input type='text' name='mailaccept[]' size='30' value='".$mailaccept."' />";
|
||||
print "@" .$domain->getName();
|
||||
|
||||
print "</td></tr>";
|
||||
}
|
||||
|
||||
print "<tr><td align='right'>Création d'un nouveau mail accepté en entrée :</td>
|
||||
<td align='left'><input type='text' name='mailaccept[]'
|
||||
size='30'/>";
|
||||
print "@" .$domain->getName();
|
||||
print "</td></tr>";
|
||||
|
||||
print "<tr><td align='right'>Création d'un nouveau mail accepté en entrée :</td>
|
||||
<td align='left'><input type='text' name='mailaccept[]'
|
||||
size='30'/>";
|
||||
print "@" .$domain->getName();
|
||||
print "</td></tr>";
|
||||
|
||||
print "<tr><td align='right'>Création d'un nouveau mail accepté en entrée :</td>
|
||||
<td align='left'><input type='text' name='mailaccept[]'
|
||||
size='30'/>";
|
||||
print "@" .$domain->getName();
|
||||
print "</td></tr>";
|
||||
|
||||
foreach($alias->getRedirections() as $red) {
|
||||
print "<tr><td align='right'>Mails entrants redirigés vers :</td>
|
||||
<td align='left'><input type='text' name='maildrop[]'
|
||||
size='30' value='" .$red. "'/>
|
||||
</td></tr>";
|
||||
}
|
||||
|
||||
print "<tr><td align='right'>Nouvelle redirection vers :</td>
|
||||
<td align='left'><input type='text' name='maildrop[]'
|
||||
size='30'' /></td></tr>";
|
||||
print "<tr><td align='right'>Nouvelle redirection vers :</td>
|
||||
<td align='left'><input type='text' name='maildrop[]'
|
||||
size='30'/></td></tr>";
|
||||
print "<tr><td align='right'>Nouvelle redirection vers :</td>
|
||||
<td align='left'><input type='text' name='maildrop[]'
|
||||
size='30'/></td></tr>";
|
||||
|
||||
print "<tr><td colspan='2'>";
|
||||
print "<p class='italic'>Activer/désactiver l'alias</p>";
|
||||
print "</td></tr>";
|
||||
|
||||
$isactive= ($alias->isActive()) ? 'checked="checked"' : '';
|
||||
print "<tr><td align='right'>Alias actif :</td>
|
||||
<td align='left'><input type='checkbox' name='isactive'
|
||||
$isactive /></td></tr>";
|
||||
|
||||
print "<tr><td> ,</td><td align='left'>";
|
||||
print "<p><input type='submit' class='button'
|
||||
value='Valider' name='valider'/></p>";
|
||||
print "</td></tr>";
|
||||
|
||||
print "</table>";
|
||||
print '</form>';
|
||||
} else {
|
||||
|
||||
?>
|
||||
|
||||
<center>
|
||||
|
||||
<h4>Ajout d'un alias</h4>
|
||||
|
||||
<form name="add" action="alias.php?domain=<?php print $domain->getname(); ?>" method="post">
|
||||
|
||||
<p class="italic">Remplissez lez champs.</p>
|
||||
|
||||
<table>
|
||||
|
||||
<tr><td align="right">Nom (unique) de l'alias :</td>
|
||||
<td align="left"><input type='text' name='cn'/></td></tr>
|
||||
|
||||
<tr><td align="right">Alias :</td>
|
||||
<td align="left"><input type='text' name='mailaccept[]'/>
|
||||
<?php
|
||||
print "@" .$domain->getName();
|
||||
?>
|
||||
</td></tr>
|
||||
|
||||
<tr><td align="right">Alias :</td>
|
||||
<td align="left"><input type='text' name='mailaccept[]'/>
|
||||
<?php
|
||||
print "@" .$domain->getName();
|
||||
?>
|
||||
</td></tr>
|
||||
|
||||
<tr><td align="right">Alias :</td>
|
||||
<td align="left"><input type='text' name='mailaccept[]'/>
|
||||
<?php
|
||||
print "@" .$domain->getName();
|
||||
?>
|
||||
</td></tr>
|
||||
|
||||
<tr><td align="right">Alias :</td>
|
||||
<td align="left"><input type='text' name='mailaccept[]'/>
|
||||
<?php
|
||||
print "@" .$domain->getName();
|
||||
?>
|
||||
</td></tr>
|
||||
|
||||
<tr><td align="right">Alias :</td>
|
||||
<td align="left"><input type='text' name='mailaccept[]'/>
|
||||
<?php
|
||||
print "@" .$domain->getName();
|
||||
?>
|
||||
</td></tr>
|
||||
|
||||
<tr><td align="right">Redirection :</td>
|
||||
<td align="left"><input type='text' name='maildrop[]'/></td></tr>
|
||||
|
||||
<tr><td align="right">Redirection :</td>
|
||||
<td align="left"><input type='text' name='maildrop[]'/></td></tr>
|
||||
|
||||
<tr><td align="right">Redirection :</td>
|
||||
<td align="left"><input type='text' name='maildrop[]'/></td></tr>
|
||||
|
||||
<tr><td align="right">Redirection :</td>
|
||||
<td align="left"><input type='text' name='maildrop[]'/></td></tr>
|
||||
|
||||
<tr><td align="right">Redirection :</td>
|
||||
<td align="left"><input type='text' name='maildrop[]'/></td></tr>
|
||||
|
||||
<tr><td colspan="2">
|
||||
<p class="italic">Activer/désactiver l'alias</p>
|
||||
</td></tr>
|
||||
|
||||
<tr><td align="right">Alias actif :</td>
|
||||
<td align="left"><input type='checkbox' name='isactive' checked /></td></tr>
|
||||
|
||||
|
||||
<tr><td> </td><td align="left">
|
||||
<p><input type="submit" class="button" value="Valider" name="valider" /></p>
|
||||
</td></tr>
|
||||
|
||||
</table>
|
||||
</form>
|
||||
|
||||
</center>
|
||||
|
||||
<?php } include('inc/fin.php'); ?>
|
||||
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
|
||||
));
|
||||
|
|
|
@ -7,10 +7,10 @@ session_name('EVOADMIN_SESS');
|
|||
session_start();
|
||||
|
||||
ob_start();
|
||||
include('inc/haut.php');
|
||||
|
||||
if (isset($_SESSION['login'])) {
|
||||
print "<div class='login-info bg-info'>Déconnecté</div>";
|
||||
$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 '<div class="alert alert-danger" role="alert">'.$e->getMessage().'</div>';
|
||||
$alerts[] = array('type' => 2, 'message' => $e->getMessage());
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
<div class="loginpage">
|
||||
<div class="loginbox">
|
||||
<div class="illustration">
|
||||
<img src="assets/logo.png" class="img-responsive" alt="Responsive image">
|
||||
</div>
|
||||
<form method="POST" action="auth.php" method="post" name="auth">
|
||||
<div class="form-group has-feedback has-feedback-left">
|
||||
<input type="text" name="login" class="form-control" placeholder="Utilisateur" autofocus="autofocus"/>
|
||||
<i class="glyphicon glyphicon-user form-control-feedback"></i>
|
||||
</div>
|
||||
<div class="form-group has-feedback has-feedback-left">
|
||||
<input type="password" name="password" class="form-control" placeholder="Mot de passe" />
|
||||
<i class="glyphicon glyphicon-lock form-control-feedback"></i>
|
||||
</div>
|
||||
<div class="form-group text-center">
|
||||
<button type="submit" class="btn btn-primary" onclick="return submit_login();">Connexion</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
print $twig->render('login.html', array(
|
||||
'page_name' => $config['global']['name'].' - Login'
|
||||
,'alerts' => $alerts
|
||||
,'logout' => $logout
|
||||
));
|
||||
|
||||
<?php
|
||||
|
||||
include('inc/fin.php');
|
||||
ob_end_flush();
|
||||
|
||||
?>
|
||||
|
|
|
@ -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 "<div class=\"alert alert-danger\" role=\"alert\">Erreur, vous avez tape deux mots de passe differents</div>";
|
||||
$alerts[] = array('type' => 2, 'message' => "Erreur, vous avez tape deux mots de passe differents");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
print "<div class='container'>";
|
||||
|
||||
$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 "<div class=\"alert alert-info\" role=\"alert\">Modification en cours...</div>";
|
||||
$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 "<div class=\"alert alert-info\" role=\"alert\">Ajout en cours...</div>";
|
||||
$alerts[] = array('type' => 1, 'message' => "Ajout en cours...");
|
||||
$domain->addAccount($uid,$cn,$password,$actif,$admin,$actif,$courier,$webmail,$authsmtp);
|
||||
print "<div class=\"alert alert-succes\" role=\"alert\">Ajout effectué.</div>";
|
||||
print '<a href="compte.php?domain='.$domain->getName().'&account='.$uid.'@'.$domain->getName().'"><button class="btn btn-primary">Voir le compte créé</button></a>';
|
||||
$alerts[] = array('type' => 0, 'message' => 'Ajout effectué <a href="compte.php?domain='.$domain->getName().'&account='.$uid.'@'.$domain->getName().'"><button class="btn btn-primary">Voir le compte créé</button></a>');
|
||||
}
|
||||
} catch (Exception $e) {
|
||||
print '<div class="alert alert-danger" role="alert">'.$e->getMessage().'</div>';
|
||||
$alerts[] = array('type' => 2, 'message' => $e->getMessage());
|
||||
}
|
||||
|
||||
print "</div>";
|
||||
}
|
||||
|
||||
if (isset($_GET['account'])) {
|
||||
print "<div class='container'>";
|
||||
print "<h2>Modification du compte ".$account->getUid()."</h2><hr>";
|
||||
|
||||
print"<div class=\"alert alert-info\" role=\"alert\">Modifiez les champs que vous désirez changer.<br /> [*] indique ceux qui ne doivent pas être nuls.<br />Vous pouvez réinitialiser le mot de passe si besoin.</div>";
|
||||
|
||||
print "<form name='add' action='compte.php?domain=".$domain->getName()."&account=".$account->getUid()."' method='post' class='form-horizontal'>";
|
||||
|
||||
print "<div class='form-group'>";
|
||||
print "<label for='cn' class='col-sm-3 control-label'>Nom Complet [*] :</label>";
|
||||
print "<div class='col-sm-7'><input type='text' name='cn' class='form-control' value='".$account->getName()."' /></div>";
|
||||
print "<div class='col-sm-2 control-label'></div>";
|
||||
print "</div>";
|
||||
|
||||
print "<div class='form-group'>";
|
||||
print "<label for='pass1' class='col-sm-3 control-label'>Nouveau mot de passe :</label>";
|
||||
print "<div class='col-sm-7'><input type='password' name='pass1' class='form-control' /></div>";
|
||||
print "<div class='col-sm-2 control-label'></div>";
|
||||
print "</div>";
|
||||
|
||||
print "<div class='form-group'>";
|
||||
print "<label for='pass2' class='col-sm-3 control-label'>Confirmation du mot de passe :</label>";
|
||||
print "<div class='col-sm-7'><input type='password' name='pass2' class='form-control' /></div>";
|
||||
print "<div class='col-sm-2 control-label'></div>";
|
||||
print "</div>";
|
||||
|
||||
print "<div class='well'>Ajoutez/modifiez/supprimez les alias (mails acceptés en entrée).<br />Un minimum d'un alias est requis. Mêmes instructions<br />pour les redirections (compte(s) dans le(s)quel(s) est/sont délivré(s) les mails).</div>";
|
||||
foreach ($account->getAliases() as $aliase) {
|
||||
print "<div class='form-group'>";
|
||||
print "<label for='mailaccept[]' class='col-sm-3 control-label'>Mail accepté en entrée : </label>";
|
||||
print "<div class='col-sm-7'><input type='text' name='mailaccept[]' value='".$aliase."' class='form-control' /></div>";
|
||||
print "<div class='col-sm-2 control-label'>";
|
||||
print "@" .$domain->getName();
|
||||
print "</div>";
|
||||
print "</div>";
|
||||
|
||||
}
|
||||
|
||||
print "<div class='form-group'>";
|
||||
print "<label for='mailaccept[]' class='col-sm-3 control-label'>Création d'un nouveau mail accepté en entrée : </label>";
|
||||
print "<div class='col-sm-7'><input type='text' name='mailaccept[]' value='' class='form-control' /></div>";
|
||||
print "<div class='col-sm-2 control-label'>";
|
||||
print "@" .$domain->getName();
|
||||
print "</div>";
|
||||
print "</div>";
|
||||
|
||||
|
||||
foreach ($account->getRedirections() as $red) {
|
||||
print "<div class='form-group'>";
|
||||
print "<label for='maildrop[]' class='col-sm-3 control-label'>Mails entrants redirigés vers : </label>";
|
||||
print "<div class='col-sm-7'><input type='text' name='maildrop[]' value='".$red."' class='form-control' /></div>";
|
||||
print "<div class='col-sm-2 control-label'>";
|
||||
print "</div>";
|
||||
print "</div>";
|
||||
}
|
||||
|
||||
print "<div class='form-group'>";
|
||||
print "<label for='maildrop[]' class='col-sm-3 control-label'>Nouvelle redirection vers : </label>";
|
||||
print "<div class='col-sm-7'><input type='text' name='maildrop[]' class='form-control' /></div>";
|
||||
print "<div class='col-sm-2 control-label'></div>";
|
||||
print "</div>";
|
||||
|
||||
print "<hr><h5>Modifiez les autorisations du compte si besoin.</h5>";
|
||||
|
||||
$isactive = ($account->isActive()) ? 'checked=checked' : '';
|
||||
print "<div class='form-group'>";
|
||||
print "<label for='isactive' class='col-sm-3 control-label'>Activation globale : </label>";
|
||||
print "<div class='col-sm-7'><input type='checkbox' name='isactive' $isactive class='form-control move-left' /></div>";
|
||||
print "<div class='col-sm-2 control-label'></div>";
|
||||
print "</div>";
|
||||
|
||||
$isadmin = ($account->isAdmin()) ? 'checked="checked"' : '';
|
||||
print "<div class='form-group'>";
|
||||
print "<label for='isadmin' class='col-sm-3 control-label'>Compte admin : </label>";
|
||||
print "<div class='col-sm-7'><input type='checkbox' name='isadmin' $isadmin class='form-control move-left' /></div>";
|
||||
print "<div class='col-sm-2 control-label'></div>";
|
||||
print "</div>";
|
||||
|
||||
$courieractive = ($account->isCourier()) ? 'checked="checked"' : '';
|
||||
print "<div class='form-group'>";
|
||||
print "<label for='courieractive' class='col-sm-3 control-label'>Utilisation POP/IMAP : </label>";
|
||||
print "<div class='col-sm-7'><input type='checkbox' name='courieractive' $courieractive class='form-control move-left' /></div>";
|
||||
print "<div class='col-sm-2 control-label'></div>";
|
||||
print "</div>";
|
||||
|
||||
$webmailactive = ($account->isWebmail()) ? 'checked="checked"' : '';
|
||||
print "<div class='form-group'>";
|
||||
print "<label for='webmailactive' class='col-sm-3 control-label'>Webmail : </label>";
|
||||
print "<div class='col-sm-7'><input type='checkbox' name='webmailactive' $webmailactive class='form-control move-left' /></div>";
|
||||
print "<div class='col-sm-2 control-label'></div>";
|
||||
print "</div>";
|
||||
|
||||
$authsmtpactive = ($account->isAuthSmtp()) ? 'checked="checked"' : '';
|
||||
print "<div class='form-group'>";
|
||||
print "<label for='authsmtpactive' class='col-sm-3 control-label'>Authentification SMTP : </label>";
|
||||
print "<div class='col-sm-7'><input type='checkbox' name='authsmtpactive' $authsmtpactive class='form-control move-left' /></div>";
|
||||
print "<div class='col-sm-2 control-label'></div>";
|
||||
print "</div>";
|
||||
|
||||
#$amavisBypassSpamChecks= ($account->isAmavis())) ? 'checked="checked"' : '';
|
||||
#print "<div class='form-group'>";
|
||||
#print "<label for='amavisBypassSpamChecks' class='col-sm-3 control-label'>Désactivation Antispam : </label>";
|
||||
#print "<div class='col-sm-7'><input type='checkbox' name='amavisBypassSpamChecks' $amavisBypassSpamChecks class='form-control move-left' /></div>";
|
||||
#print "<div class='col-sm-2 control-label'></div>";
|
||||
#print "</div>";
|
||||
|
||||
print "<div class='text-center'><button type='submit' class='btn btn-primary' onclick='return submit_add();'>Valider</button></div>";
|
||||
|
||||
print '</form>';
|
||||
print '</div>';
|
||||
} else {
|
||||
?>
|
||||
|
||||
<div class="container">
|
||||
|
||||
<h2>Ajout d'un compte</h2><hr>
|
||||
|
||||
<form name="add" action="compte.php?domain=<?php print $domain->getName(); ?>" method="post" class="form-horizontal">
|
||||
<div class="alert alert-info" role="alert">Remplissez lez champs, ceux contenant [*] sont obligatoires.</div>
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<label for="uid" class="col-sm-3 control-label">Login [*] :</label>
|
||||
<div class="col-sm-7"><input type="text" name="uid" class="form-control" /></div>
|
||||
<div class="col-sm-2 control-label"><?php print "@" .$domain->getName(); ?></div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="cn" class="col-sm-3 control-label">Nom Complet [*] :</label>
|
||||
<div class="col-sm-7"><input type="text" name="cn" class="form-control" /></div>
|
||||
<div class="col-sm-2 control-label"></div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="pass1" class="col-sm-3 control-label">Mot de passe [*] :</label>
|
||||
<div class="col-sm-7"><input type="password" name="pass1" class="form-control" /></div>
|
||||
<div class="col-sm-2 control-label"></div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="pass2" class="col-sm-3 control-label">Confirmation du mot de passe [*] :</label>
|
||||
<div class="col-sm-7"><input type="password" name="pass2" class="form-control" /></div>
|
||||
<div class="col-sm-2 control-label"></div>
|
||||
</div>
|
||||
<hr><h5>En plus du mail utilisant le login, vous pouvez ajouter des alias.</h5>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="alias" class="col-sm-3 control-label">Alias :</label>
|
||||
<div class="col-sm-7"><input type="text" name="alias[0]" class="form-control" /></div>
|
||||
<div class="col-sm-2 control-label"><?php print "@" .$domain->getName(); ?></div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="alias[1]" class="col-sm-3 control-label">Alias :</label>
|
||||
<div class="col-sm-7"><input type="text" name="alias[1]" class="form-control" /></div>
|
||||
<div class="col-sm-2 control-label"><?php print "@" .$domain->getName(); ?></div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="alias[2]" class="col-sm-3 control-label">Alias :</label>
|
||||
<div class="col-sm-7"><input type="text" name="alias[2]" class="form-control" /></div>
|
||||
<div class="col-sm-2 control-label"><?php print "@" .$domain->getName(); ?></div>
|
||||
</div>
|
||||
|
||||
<hr><h5>Cochez les cases pour choisir les autorisations du compte.</h5>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="isactive" class="col-sm-3 control-label">Actif :</label>
|
||||
<div class="col-sm-7"><input type='checkbox' name='isactive' checked class="form-control move-left" /></div>
|
||||
<div class="col-sm-2 control-label"></div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="isadmin" class="col-sm-3 control-label">Compte admin :</label>
|
||||
<div class="col-sm-7"><input type='checkbox' name='isadmin' class="form-control move-left" /></div>
|
||||
<div class="col-sm-2 control-label"></div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="courieractive" class="col-sm-3 control-label">Utilisation POP/IMAP :</label>
|
||||
<div class="col-sm-7"><input type='checkbox' name='courieractive' checked class="form-control move-left" /></div>
|
||||
<div class="col-sm-2 control-label"></div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="webmailactive" class="col-sm-3 control-label">Webmail :</label>
|
||||
<div class="col-sm-7"><input type='checkbox' name='webmailactive' checked class="form-control move-left" /></div>
|
||||
<div class="col-sm-3 control-label"></div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="authsmtpactive" class="col-sm-3 control-label">Authentification SMTP :</label>
|
||||
<div class="col-sm-7"><input type='checkbox' name='authsmtpactive' checked class="form-control move-left" /></div>
|
||||
<div class="col-sm-3 control-label"></div>
|
||||
</div>
|
||||
|
||||
|
||||
<!--
|
||||
<div class="form-group">
|
||||
<label for="amavisBypassSpamChecks" class="col-sm-3 control-label">Désactivation Antispam :</label>
|
||||
<div class="col-sm-7"><input type='checkbox' name='amavisBypassSpamChecks' class="form-control move-left" /></div>
|
||||
<div class="col-sm-2 control-label"></div>
|
||||
</div>
|
||||
-->
|
||||
|
||||
|
||||
<div class="text-center"><button type="submit" class="btn btn-primary" onclick='return submit_add();'>valider</button></div>
|
||||
|
||||
</form>
|
||||
|
||||
</div>
|
||||
|
||||
<?php } include('inc/fin.php'); ?>
|
||||
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
|
||||
));
|
||||
|
|
|
@ -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 "<div class=\"alert alert-danger\" role=\"alert\">Vous n'avez pas les droits pour cette page</div>";
|
||||
$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 "<div class='container'>";
|
||||
print "<div class=\"alert alert-warning\" role=\"alert\">Ajout en cours du domaine ".$domain." ...</div>";
|
||||
|
||||
$alerts[] = array('type' => 1, 'message' => "Ajout en cours du domaine $domain ...");
|
||||
|
||||
try {
|
||||
$active = (!empty($_POST['isactive'])) ? true : false;
|
||||
$server->addDomain($domain, $active);
|
||||
print '<div class="alert alert-success" role="alert">Ajout effectué.</div>';
|
||||
$alerts[] = array('type' => 0, 'message' => "Ajout effectué.");
|
||||
} catch (Exception $e_ad) {
|
||||
print '<div class="alert alert-danger" role="alert">'.$e_ad->getMessage().'</div>';
|
||||
$alerts[] = array('type' => 2, 'message' => $e_ad->getMessage());
|
||||
}
|
||||
|
||||
print "</div>";
|
||||
}
|
||||
|
||||
// Formulaire d'ajout d'un domaine
|
||||
?>
|
||||
|
||||
<div class="container">
|
||||
<h4>Ajout d'un domaine</h4>
|
||||
<form name="add" action="domaine.php" method="post" class="form-horizontal">
|
||||
<div class="alert alert-info" role="alert">Remplissez lez champs, ceux contenant [*] sont obligatoires.</div>
|
||||
<div class="form-group">
|
||||
<label for="domain" class="col-sm-3 control-label">Domaine [*] :</label>
|
||||
<div class="col-sm-9"><input type="text" name="domain" class="form-control" /></div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="isactive" class="col-sm-3 control-label">Activation globale :</label>
|
||||
<div class="col-sm-9"><input type='checkbox' name='isactive' checked class="form-control move-left"/></div>
|
||||
</div>
|
||||
<div class="text-center"><button type="submit" class="btn btn-primary">Valider</button></div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<?php include("inc/fin.php"); ?>
|
||||
print $twig->render('add_domain.html', array(
|
||||
'page_name' => $config['global']['name']
|
||||
,'alerts' => $alerts
|
||||
,'login' => $server->getLogin()
|
||||
,'isSuperAdmin' => $server->isSuperAdmin()
|
||||
));
|
||||
|
|
|
@ -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');
|
||||
|
||||
?>
|
||||
|
||||
<div class="container">
|
||||
<div class="alert alert-info" role="alert">Cette page devrait être lue attentivement avant d'utiliser cette interface.</div>
|
||||
|
||||
<hr><h2>Aide</h2>
|
||||
|
||||
Cette aide devrait vous permettre de comprendre le fonctionnement de cette interface.
|
||||
|
||||
<h3>Créer un compte mail</h3>
|
||||
|
||||
<p>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 <i>Admin</i>, c'est-à-dire permettre à l'utilisateur de se connecter à cette interface pour pouvoir ajouter/supprimer des mails/alias.<br>
|
||||
<b>Vous devez également choisir un Login qui ne sera plus modifiable par la suite.</b> 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").
|
||||
</p>
|
||||
|
||||
<h3>Créer un alias</h3>
|
||||
|
||||
<p>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.</p>
|
||||
|
||||
<hr><h2>FAQ</h2>
|
||||
|
||||
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 à <a href="mailto:<?php print $config['global']['mail'];?>"><?php print $config['global']['mail'];?></a>.
|
||||
|
||||
<p>Qu'est-ce qu'une syntaxe valide pour un compte mail ?</p>
|
||||
|
||||
<i>Le début du mail (avant le @), doit respecter les règles suivantes :
|
||||
<ul>
|
||||
<li>être compris entre 3 et 30 caractères</li>
|
||||
<li>n'avoir que des caractères de types lettre minuscules ou chiffres</li>
|
||||
<li>les caractères tiret (-), point (.) et underscore (_) sont permis sauf en début et fin</li>
|
||||
</ul>
|
||||
</i>
|
||||
|
||||
<p>Qu'est-ce qu'un mot de passe valide ?</p>
|
||||
|
||||
<i>Votre mot de passe doit répondre aux règles suivantes :
|
||||
<ul>
|
||||
<li>avoir entre 5 et 12 caractères</li>
|
||||
<li>N'utiliser ques des caractères imprimables c'est-à-dire des lettres (majuscules, minuscules ou accentuées), des chiffres ou les caractères suivants :
|
||||
<pre>[]!"#$%&'()*+,-./:;<=>?@\^_`{|}~</pre>
|
||||
</ul>
|
||||
</i>
|
||||
|
||||
<p>Qu'est-ce qu'un mot de passe assez complexe ?</p>
|
||||
|
||||
<i>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.</i>
|
||||
|
||||
</div>
|
||||
|
||||
<?php include('inc/fin.php'); ?>
|
||||
print $twig->render('help.html', array(
|
||||
'page_name' => $config['global']['name']
|
||||
,'alerts' => $alerts
|
||||
,'login' => $server->getLogin()
|
||||
,'isSuperAdmin' => $server->isSuperAdmin()
|
||||
,'notif_mail' => $config['global']['mail']
|
||||
));
|
||||
|
|
|
@ -1,39 +0,0 @@
|
|||
|
||||
</div>
|
||||
<footer class="site-footer">
|
||||
<div class="container">
|
||||
<p>
|
||||
<span>Evolix</span>
|
||||
<br /><strong>Hébergement et Infogérance Open Source</strong>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$('.table').DataTable({
|
||||
"language": {
|
||||
"emptyTable": "Pas de données disponibles",
|
||||
"info": "Entrées _START_ à _END_ sur _TOTAL_ entrées",
|
||||
"infoEmpty": "Entrées 0 à 0 sur 0",
|
||||
"infoFiltered": "(filtré sur un total de _MAX_ entrées)",
|
||||
"infoPostFix": "",
|
||||
"thousands": ",",
|
||||
"lengthMenu": "Montrer _MENU_ entrées",
|
||||
"loadingRecords": "Chargement...",
|
||||
"processing": "Travail en cours...",
|
||||
"search": "Recherche : ",
|
||||
"zeroRecords": "Pas de resultat",
|
||||
"paginate": {
|
||||
"first": "Première",
|
||||
"last": "Dernière",
|
||||
"next": "Suivante",
|
||||
"previous": "Précédente"
|
||||
}
|
||||
},
|
||||
"lengthMenu": [ [10, 25, 50, 100, -1], [10, 25, 50, 100, "toutes les"] ]
|
||||
});
|
||||
} );
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -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();
|
||||
|
|
|
@ -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 '<div class="container"><form name="del "method="post" action="superadmin.php">';
|
||||
print '<div class="alert alert-warning" role="alert">Voulez vous vraiment supprimer le domaine '.$domain.' ?</div>';
|
||||
print '<div class="alert alert-warning" role="alert"><button type="submit" name="delete" value="'.$domain.'">Confirmer</button> / <a href="superadmin.php">Annuler</a></div>';
|
||||
print '</form></div>';
|
||||
$alerts[] = array('type' => 1, 'message' => "Voulez vous vraiment supprimer le domaine $domain ?");
|
||||
$alerts[] = array('type' => 1, 'message' => "<form name=\"del\" method=\"post\" action=\"superadmin.php\"><button type=\"submit\" name=\"delete\" value=\"$domain\">Confirmer</button> / <a href=\"superadmin.php\">Annuler</a></form>");
|
||||
}
|
||||
|
||||
if (!empty($_POST['delete'])) {
|
||||
$domain = htmlentities(strip_tags($_POST['delete']),ENT_NOQUOTES);
|
||||
print '<div class="container">';
|
||||
print '<div class="alert alert-warning" role="alert">Suppression du domaine '.$domain.' ...</div>';
|
||||
$alerts[] = array('type' => 1, 'message' => "Suppression du domaine $domain ...");
|
||||
try {
|
||||
$server->delDomain($domain);
|
||||
print '<div class="alert alert-success" role="alert">Suppression effectué.</div>';
|
||||
$alerts[] = array('type' => 0, 'message' => 'Suppression effectué.');
|
||||
} catch (Exception $e_ad) {
|
||||
print '<div class="alert alert-danger" role="alert">'.$e_ad->getMessage().'</div>';
|
||||
$alerts[] = array('type' => 2, 'message' => $e_ad->getMessage());
|
||||
}
|
||||
print '</div>';
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
<div class="container">
|
||||
<h2>Liste des domaines administrables :</h2><hr>
|
||||
<form name="del" method="post" action="superadmin.php">
|
||||
<table class="table table-striped table-condensed">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Nom du domaine</th>
|
||||
<th width="100px">Actif</th>
|
||||
<th>Nombre de comptes</th>
|
||||
<th>dont comptes mail</th>
|
||||
<th>Nombre d'alias mail</th>
|
||||
<th>Taille / Quota</th>
|
||||
<th width="50px">Suppr.</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php
|
||||
// lignes avec les details sur les domaines
|
||||
$domains = $server->getDomains();
|
||||
foreach ($domains as $domain) {
|
||||
print '<tr><td style="text-align:left;"><a href="admin.php?domain='.$domain->getName(). '">' .$domain->getName(). '</a></td>';
|
||||
if ($domain->isActive()) {
|
||||
print '<td><span class="glyphicon glyphicon-ok"></span></td>';
|
||||
} else {
|
||||
print '<td><span class="glyphicon glyphicon-remove"></span></td>';
|
||||
}
|
||||
print '<td><b>' .$domain->getNbAccounts(). '</b></td>';
|
||||
print '<td><b>' .$domain->getNbMailAccounts(). '</b></td>';
|
||||
//print '<td><b>' .$domain->getNbSmbAccounts(). '</b></td>';
|
||||
print '<td><b>' .$domain->getNbMailAlias(). '</b></td>';
|
||||
print '<td>' .$domain->getQuota(). '</td>';
|
||||
print '<td><button type="submit" name="domain" value="'.$domain->getName().'"><span class="glyphicon glyphicon-trash"></span></button></td>';
|
||||
print '</tr>';
|
||||
}
|
||||
?>
|
||||
</tbody>
|
||||
</table>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<?php include('inc/fin.php'); ?>
|
||||
print $twig->render('list_domain.html', array(
|
||||
'page_name' => $config['global']['name']
|
||||
,'alerts' => $alerts
|
||||
,'login' => $server->getLogin()
|
||||
,'isSuperAdmin' => $server->isSuperAdmin()
|
||||
,'domains' => $server->getDomains()
|
||||
));
|
||||
|
|
116
htdocs/tpl/page/account.html
Normal file
116
htdocs/tpl/page/account.html
Normal file
|
@ -0,0 +1,116 @@
|
|||
{% extends 'base.html' %}
|
||||
|
||||
{% block body %}
|
||||
{% include 'nav.html' %}
|
||||
|
||||
<div class="container">
|
||||
{% include 'notif.html' %}
|
||||
|
||||
<h2>{% if uid is null %}Ajout d'un compte{% else %}Modification du compte {{ uid }}{% endif %}</h2>
|
||||
|
||||
<form name="add" action="compte.php?domain={{ domain }}{% if uid is not null %}&account={{ uid }}{% endif %}" method="post" class="form-horizontal">
|
||||
|
||||
<hr><div class="alert alert-info" role="alert">Remplissez lez champs, ceux contenant [*] sont obligatoires.</div>
|
||||
|
||||
{% if uid is null %}
|
||||
<div class="form-group">
|
||||
<label for="uid" class="col-sm-3 control-label">Login [*] :</label>
|
||||
<div class="col-sm-7"><input type="text" name="uid" class="form-control"/></div>
|
||||
<div class="col-sm-2 control-label">@{{ domain }}</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<div class="form-group">
|
||||
<label for="cn" class="col-sm-3 control-label">Nom Complet [*] :</label>
|
||||
<div class="col-sm-7"><input type="text" name="cn" class="form-control" value="{{ name }}"/></div>
|
||||
<div class="col-sm-2 control-label"></div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="pass1" class="col-sm-3 control-label">Mot de passe [*] :</label>
|
||||
<div class="col-sm-7"><input type="password" name="pass1" class="form-control" /></div>
|
||||
<div class="col-sm-2 control-label"></div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="pass2" class="col-sm-3 control-label">Confirmation du mot de passe [*] :</label>
|
||||
<div class="col-sm-7"><input type="password" name="pass2" class="form-control" /></div>
|
||||
<div class="col-sm-2 control-label"></div>
|
||||
</div>
|
||||
|
||||
<hr><h5>En plus du mail utilisant le login, vous pouvez ajouter des alias.</h5>
|
||||
|
||||
{% for alias in aliases %}
|
||||
<div class='form-group'>
|
||||
<label for="mailaccept[]" class="col-sm-3 control-label">Alias :</label>
|
||||
<div class="col-sm-7"><input type="text" name="mailaccept[]" class="form-control" value="{{ alias }}"/></div>
|
||||
<div class="col-sm-2 control-label">@{{ domain }}</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
|
||||
<div class="form-group">
|
||||
<label for="mailaccept[]" class="col-sm-3 control-label">Alias :</label>
|
||||
<div class="col-sm-7"><input type="text" name="mailaccept[]" class="form-control"/></div>
|
||||
<div class="col-sm-2 control-label">@{{ domain }}</div>
|
||||
</div>
|
||||
|
||||
{% for maildrop in maildrops %}
|
||||
<div class='form-group'>
|
||||
<label for='maildrop[]' class='col-sm-3 control-label'>Mails entrants redirigés vers : </label>
|
||||
<div class='col-sm-7'><input type='text' name='maildrop[]' value='{{ maildrop }}' class='form-control' /></div>
|
||||
<div class='col-sm-2 control-label'></div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
|
||||
<div class='form-group'>
|
||||
<label for='maildrop[]' class='col-sm-3 control-label'>Nouvelle redirection vers : </label>
|
||||
<div class='col-sm-7'><input type='text' name='maildrop[]' class='form-control' /></div>
|
||||
<div class='col-sm-2 control-label'></div>
|
||||
</div>
|
||||
|
||||
<hr><h5>Cochez les cases pour choisir les autorisations du compte.</h5>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="isactive" class="col-sm-3 control-label">Actif :</label>
|
||||
<div class="col-sm-7"><input type='checkbox' name='isactive' class="form-control move-left" {% if active %}checked="checked"{%endif%}/></div>
|
||||
<div class="col-sm-2 control-label"></div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="isadmin" class="col-sm-3 control-label">Compte admin :</label>
|
||||
<div class="col-sm-7"><input type='checkbox' name='isadmin' class="form-control move-left" {% if admin %}checked="checked"{%endif%}/></div>
|
||||
<div class="col-sm-2 control-label"></div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="courieractive" class="col-sm-3 control-label">Utilisation POP/IMAP :</label>
|
||||
<div class="col-sm-7"><input type='checkbox' name='courieractive' class="form-control move-left" {% if courier %}checked="checked"{%endif%}/></div>
|
||||
<div class="col-sm-2 control-label"></div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="webmailactive" class="col-sm-3 control-label">Webmail :</label>
|
||||
<div class="col-sm-7"><input type='checkbox' name='webmailactive' class="form-control move-left" {% if webmail %}checked="checked"{%endif%}/></div>
|
||||
<div class="col-sm-3 control-label"></div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="authsmtpactive" class="col-sm-3 control-label">Authentification SMTP :</label>
|
||||
<div class="col-sm-7"><input type='checkbox' name='authsmtpactive' class="form-control move-left" {% if authsmtp %}checked="checked"{%endif%}/></div>
|
||||
<div class="col-sm-3 control-label"></div>
|
||||
</div>
|
||||
|
||||
<!--
|
||||
<div class="form-group">
|
||||
<label for="amavisBypassSpamChecks" class="col-sm-3 control-label">Désactivation Antispam :</label>
|
||||
<div class="col-sm-7"><input type='checkbox' name='amavisBypassSpamChecks' class="form-control move-left" {% if amavis %}checked="checked"{%endif%}/></div>
|
||||
<div class="col-sm-2 control-label"></div>
|
||||
</div>
|
||||
-->
|
||||
|
||||
<hr><div class="text-center"><button type="submit" class="btn btn-primary" onclick='return submit_add();'>valider</button></div>
|
||||
|
||||
</form>
|
||||
|
||||
</div>
|
||||
{% endblock %}
|
22
htdocs/tpl/page/add_domain.html
Normal file
22
htdocs/tpl/page/add_domain.html
Normal file
|
@ -0,0 +1,22 @@
|
|||
{% extends 'base.html' %}
|
||||
|
||||
{% block body %}
|
||||
{% include 'nav.html' %}
|
||||
|
||||
<div class="container">
|
||||
{% include 'notif.html' %}
|
||||
<h2>Ajout d'un domaine</h2>
|
||||
<form name="add" action="domaine.php" method="post" class="form-horizontal">
|
||||
<hr><div class="alert alert-info" role="alert">Remplissez lez champs, ceux contenant [*] sont obligatoires.</div>
|
||||
<div class="form-group">
|
||||
<label for="domain" class="col-sm-3 control-label">Domaine [*] :</label>
|
||||
<div class="col-sm-9"><input type="text" name="domain" class="form-control" /></div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="isactive" class="col-sm-3 control-label">Activation globale :</label>
|
||||
<div class="col-sm-9"><input type='checkbox' name='isactive' checked class="form-control move-left"/></div>
|
||||
</div>
|
||||
<hr><div class="text-center"><button type="submit" class="btn btn-primary">Valider</button></div>
|
||||
</form>
|
||||
</div>
|
||||
{% endblock %}
|
63
htdocs/tpl/page/alias.html
Normal file
63
htdocs/tpl/page/alias.html
Normal file
|
@ -0,0 +1,63 @@
|
|||
{% extends 'base.html' %}
|
||||
|
||||
{% block body %}
|
||||
{% include 'nav.html' %}
|
||||
|
||||
<div class="container">
|
||||
{% include 'notif.html' %}
|
||||
|
||||
<h2>{% if name is null %}Ajout d'un alias{% else %}Modification de l'alias {{ name }}{% endif %}</h2>
|
||||
|
||||
<form name="add" action="alias.php?domain={{ domain }}{% if name is not null %}&alias={{ name }}{% endif %}" method="post" class="form-horizontal">
|
||||
|
||||
<hr><div class="alert alert-info" role="alert">Remplissez lez champs, ceux contenant [*] sont obligatoires.</div>
|
||||
|
||||
{% if name is null %}
|
||||
<div class="form-group">
|
||||
<label for="cn" class="col-sm-3 control-label">Nom (unique) de l'alias [*] :</label>
|
||||
<div class="col-sm-7"><input type="text" name="cn" class="form-control" /></div>
|
||||
<div class="col-sm-2 control-label"></div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% for alias in aliases %}
|
||||
<div class="form-group">
|
||||
<label for="mailaccept[]" class="col-sm-3 control-label">Alias :</label>
|
||||
<div class="col-sm-7"><input type="text" name="mailaccept[]" class="form-control" value="{{ alias }}"/></div>
|
||||
<div class="col-sm-2 control-label">@{{ domain }}</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
|
||||
<div class="form-group">
|
||||
<label for="mailaccept[]" class="col-sm-3 control-label">Alias :</label>
|
||||
<div class="col-sm-7"><input type="text" name="mailaccept[]" class="form-control" /></div>
|
||||
<div class="col-sm-2 control-label">@{{ domain }}</div>
|
||||
</div>
|
||||
|
||||
{% for maildrop in maildrops %}
|
||||
<div class="form-group">
|
||||
<label for="maildrop[]" class="col-sm-3 control-label">Redirection :</label>
|
||||
<div class="col-sm-7"><input type="text" name="maildrop[]" class="form-control" value="{{ maildrop }}"/></div>
|
||||
<div class="col-sm-2 control-label"></div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
|
||||
<div class="form-group">
|
||||
<label for="maildrop[]" class="col-sm-3 control-label">Redirection :</label>
|
||||
<div class="col-sm-7"><input type="text" name="maildrop[]" class="form-control" /></div>
|
||||
<div class="col-sm-2 control-label"></div>
|
||||
</div>
|
||||
|
||||
<hr><h5>Activer/désactiver l'alias</h5>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="isactive" class="col-sm-3 control-label">Actif :</label>
|
||||
<div class="col-sm-7"><input type='checkbox' name='isactive' class="form-control move-left" {% if active %}checked="checked"{%endif%}/></div>
|
||||
<div class="col-sm-2 control-label"></div>
|
||||
</div>
|
||||
|
||||
<hr><div class="text-center"><button type="submit" class="btn btn-primary" onclick='return submit_add();'>valider</button></div>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
{% endblock %}
|
|
@ -4,7 +4,7 @@
|
|||
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
|
||||
<meta name="robots" content="noindex,nofollow"/>
|
||||
<meta name="referrer" content="same-origin"/>
|
||||
<title><?php print $config['global']['name']; ?></title>
|
||||
<title>{{ page_name }}</title>
|
||||
<link rel="stylesheet" href="assets/main.css" type="text/css"/>
|
||||
<link rel="shortcut icon" href="assets/favicon.ico" type="image/x-icon"/>
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha256-916EbMg70RQy9LHiGkXzG8hSg9EdNy97GazNG/aiY1w=" crossorigin="anonymous"/>
|
||||
|
@ -15,4 +15,45 @@
|
|||
<script src="https://cdnjs.cloudflare.com/ajax/libs/datatables/1.10.16/js/dataTables.bootstrap.min.js" integrity="sha256-X/58s5WblGMAw9SpDtqnV8dLRNCawsyGwNqnZD0Je/s=" crossorigin="anonymous"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="page-wrap">
|
||||
{% block body %}{% endblock %}
|
||||
</div>
|
||||
|
||||
<footer class="site-footer">
|
||||
<div class="container">
|
||||
<p>
|
||||
<span>Evolix</span>
|
||||
<br /><strong>Hébergement et Infogérance Open Source</strong>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$('.table').DataTable({
|
||||
"language": {
|
||||
"emptyTable": "Pas de données disponibles",
|
||||
"info": "Entrées _START_ à _END_ sur _TOTAL_ entrées",
|
||||
"infoEmpty": "Entrées 0 à 0 sur 0",
|
||||
"infoFiltered": "(filtré sur un total de _MAX_ entrées)",
|
||||
"infoPostFix": "",
|
||||
"thousands": ",",
|
||||
"lengthMenu": "Montrer _MENU_ entrées",
|
||||
"loadingRecords": "Chargement...",
|
||||
"processing": "Travail en cours...",
|
||||
"search": "Recherche : ",
|
||||
"zeroRecords": "Pas de resultat",
|
||||
"paginate": {
|
||||
"first": "Première",
|
||||
"last": "Dernière",
|
||||
"next": "Suivante",
|
||||
"previous": "Précédente"
|
||||
}
|
||||
},
|
||||
"lengthMenu": [ [10, 25, 50, 100, -1], [10, 25, 50, 100, "toutes les"] ]
|
||||
});
|
||||
} );
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
37
htdocs/tpl/page/domain.html
Normal file
37
htdocs/tpl/page/domain.html
Normal file
|
@ -0,0 +1,37 @@
|
|||
{% extends 'base.html' %}
|
||||
|
||||
{% block body %}
|
||||
{% include 'nav.html' %}
|
||||
|
||||
<div class="container">
|
||||
{% include 'notif.html' %}
|
||||
|
||||
<div class="text-center">
|
||||
<form name="update" method="post" action="admin.php?domain={{ domain }}">
|
||||
{% if isSuperAdmin %}
|
||||
{% if active %}
|
||||
<button type="submit" name="isactive" value="FALSE" class="btn btn-primary">Désactiver le domaine</button>
|
||||
{% else %}
|
||||
<button type="submit" name="isactive" value="TRUE" class="btn btn-primary">Activer le domaine</button>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
<a href="compte.php?domain={{ domain }}"><button type="button" class="btn btn-primary">Ajouter un nouveau compte</button></a>
|
||||
|
||||
<a href="alias.php?domain={{ domain }}"><button type="button" class="btn btn-primary">Ajouter un nouvel alias/groupe de diffusion</button></a>
|
||||
</form>
|
||||
</div>
|
||||
<hr>
|
||||
<form class='center' action='admin.php' method='GET' name='listing'>
|
||||
<div class="form-group">
|
||||
<input type="hidden" name="domain" value="{{ domain }}"/>
|
||||
<select class="form-control" name='viewonly' onchange="document.listing.submit()">
|
||||
<option value='1' {% if view == 'account' %}selected="selected"{% endif %}>Liste des comptes</option>
|
||||
<option value='2' {% if view == 'alias' %}selected="selected"{% endif %}>Liste des alias/groupe de diffusion</option>
|
||||
</select>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
{% block list %}{% endblock %}
|
||||
|
||||
</div>
|
||||
{% endblock %}
|
52
htdocs/tpl/page/help.html
Normal file
52
htdocs/tpl/page/help.html
Normal file
|
@ -0,0 +1,52 @@
|
|||
{% extends 'base.html' %}
|
||||
|
||||
{% block body %}
|
||||
{% include 'nav.html' %}
|
||||
|
||||
<div class="container">
|
||||
{% include 'notif.html' %}
|
||||
|
||||
<h2>Aide</h2>
|
||||
|
||||
<hr><div class="alert alert-info" role="alert">Cette page devrait être lue attentivement avant d'utiliser cette interface.</div>
|
||||
|
||||
<hr><h4>Créer un compte mail</h4>
|
||||
|
||||
<p>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 <i>Admin</i>, c'est-à-dire permettre à l'utilisateur de se connecter à cette interface pour pouvoir ajouter/supprimer des mails/alias.<br>
|
||||
<b>Vous devez également choisir un Login qui ne sera plus modifiable par la suite.</b> 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").
|
||||
</p>
|
||||
|
||||
<hr><h4>Créer un alias</h4>
|
||||
|
||||
<p>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.</p>
|
||||
|
||||
<hr><h3>FAQ</h3>
|
||||
|
||||
<hr><div class="alert alert-info" role="alert">Cette Foire-Aux-Questions (FAQ) devrait répondre à vos questions. Si ce n'est pas le cas, posez vos questions à <a href="mailto:{{ notif_mail }}">{{ notif_mail }}</a>.</div>
|
||||
|
||||
<hr><h4>Qu'est-ce qu'une syntaxe valide pour un compte mail ?</h4>
|
||||
|
||||
<i>Le début du mail (avant le @), doit respecter les règles suivantes :
|
||||
<ul>
|
||||
<li>être compris entre 3 et 30 caractères</li>
|
||||
<li>n'avoir que des caractères de types lettre minuscules ou chiffres</li>
|
||||
<li>les caractères tiret (-), point (.) et underscore (_) sont permis sauf en début et fin</li>
|
||||
</ul>
|
||||
</i>
|
||||
|
||||
<hr><h4>Qu'est-ce qu'un mot de passe valide ?</h4>
|
||||
|
||||
<i>Votre mot de passe doit répondre aux règles suivantes :
|
||||
<ul>
|
||||
<li>avoir entre 5 et 12 caractères</li>
|
||||
<li>N'utiliser ques des caractères imprimables c'est-à-dire des lettres (majuscules, minuscules ou accentuées), des chiffres ou les caractères suivants :
|
||||
<pre>[]!"#$%&'()*+,-./:;<=>?@\^_`{|}~</pre>
|
||||
</ul>
|
||||
</i>
|
||||
|
||||
<hr><h4>Qu'est-ce qu'un mot de passe assez complexe ?</h4>
|
||||
|
||||
<i>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.</i>
|
||||
|
||||
</div>
|
||||
{% endblock %}
|
59
htdocs/tpl/page/list_account.html
Normal file
59
htdocs/tpl/page/list_account.html
Normal file
|
@ -0,0 +1,59 @@
|
|||
{% extends 'domain.html' %}
|
||||
|
||||
{% block list %}
|
||||
|
||||
<h2>Liste des comptes :</h2><hr>
|
||||
|
||||
<form name="del" method="post" action="admin.php?domain={{ domain }}">
|
||||
<table class="table table-striped table-condensed">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><strong>Nom du compte</strong></th>
|
||||
<th width="100px">Actif</th>
|
||||
<th width="100px">Admin</th>
|
||||
<th width="100px">POP / IMAP</th>
|
||||
<th width="100px">Webmail</th>
|
||||
<th width="100px">Auth SMTP</th>
|
||||
<th>Quota</th>
|
||||
<th width="50px">Suppr</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
||||
{% for account in accounts %}
|
||||
<tr>
|
||||
<td style="text-align:left;"><a href="compte.php?domain={{ domain }}&account={{ account.uid }}">{{ account.name }} <{{account.uid }}></a></td>
|
||||
{% if account.active %}
|
||||
<td><span class="glyphicon glyphicon-ok"></span></td>
|
||||
{% else %}
|
||||
<td><span class="glyphicon glyphicon-remove"></span></td>
|
||||
{% endif %}
|
||||
{% if account.admin %}
|
||||
<td><span class="glyphicon glyphicon-ok"></span></td>
|
||||
{% else %}
|
||||
<td><span class="glyphicon glyphicon-remove"></span></td>
|
||||
{% endif %}
|
||||
{% if account.courrier %}
|
||||
<td><span class="glyphicon glyphicon-ok"></span></td>
|
||||
{% else %}
|
||||
<td><span class="glyphicon glyphicon-remove"></span></td>
|
||||
{% endif %}
|
||||
{% if account.webmail %}
|
||||
<td><span class="glyphicon glyphicon-ok"></span></td>
|
||||
{% else %}
|
||||
<td><span class="glyphicon glyphicon-remove"></span></td>
|
||||
{% endif %}
|
||||
{% if account.authsmtp %}
|
||||
<td><span class="glyphicon glyphicon-ok"></span></td>
|
||||
{% else %}
|
||||
<td><span class="glyphicon glyphicon-remove"></span></td>
|
||||
{% endif %}
|
||||
<td>{{ account.quota }}</td>
|
||||
<td>
|
||||
<button type="submit" name="account" value="{{ account.uid }}"><span class="glyphicon glyphicon-trash"></span></button>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody></table></form>
|
||||
|
||||
{% endblock %}
|
31
htdocs/tpl/page/list_alias.html
Normal file
31
htdocs/tpl/page/list_alias.html
Normal file
|
@ -0,0 +1,31 @@
|
|||
{% extends 'domain.html' %}
|
||||
|
||||
{% block list %}
|
||||
|
||||
<h2>Liste des alias/groupe de diffusion :</h2><hr>
|
||||
|
||||
<form name="del" method="post" action="admin.php?domain={{ domain }}&viewonly=2">
|
||||
<table class="table table-striped table-condensed">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><strong>Nom de l'alias/groupe de diffusion</strong></th>
|
||||
<th width="100px">Actif</th>
|
||||
<th width="50px">Suppr</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
||||
{% for alias in aliases %}
|
||||
<tr><td style="text-align:left;"><a href="alias.php?domain={{ domain }}&alias={{ alias.name }}">{{ alias.name }}</a></td>
|
||||
{% if alias.active %}
|
||||
<td><span class="glyphicon glyphicon-ok"></span></td>
|
||||
{% else %}
|
||||
<td><span class="glyphicon glyphicon-remove"></span></td>
|
||||
{% endif %}
|
||||
<td><button type="submit" name="alias" value="{{ alias.name }}"><span class="glyphicon glyphicon-trash"></span></button></td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody></table></form>
|
||||
|
||||
|
||||
{% endblock %}
|
43
htdocs/tpl/page/list_domain.html
Normal file
43
htdocs/tpl/page/list_domain.html
Normal file
|
@ -0,0 +1,43 @@
|
|||
{% extends 'base.html' %}
|
||||
|
||||
{% block body %}
|
||||
{% include 'nav.html' %}
|
||||
|
||||
<div class="container">
|
||||
{% include 'notif.html' %}
|
||||
|
||||
<h2>Liste des domaines administrables :</h2><hr>
|
||||
<form name="del" method="post" action="superadmin.php">
|
||||
<table class="table table-striped table-condensed">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Nom du domaine</th>
|
||||
<th width="100px">Actif</th>
|
||||
<th>Nombre de comptes</th>
|
||||
<th>dont comptes mail</th>
|
||||
<th>Nombre d'alias mail</th>
|
||||
<th>Taille / Quota</th>
|
||||
<th width="50px">Suppr.</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php
|
||||
{% for domain in domains %}
|
||||
<tr><td style="text-align:left;"><a href="admin.php?domain={{ domain.name }}">{{ domain.name }}</a></td>
|
||||
{% if domain.active %}
|
||||
<td><span class="glyphicon glyphicon-ok"></span></td>
|
||||
{% else %}
|
||||
<td><span class="glyphicon glyphicon-remove"></span></td>
|
||||
{% endif %}
|
||||
<td><b>{{ domain.NbAccounts }}</b></td>
|
||||
<td><b>{{ domain.NbMailAccounts }}</b></td>
|
||||
<td><b>{{ domain.NbMailAlias }}</b></td>
|
||||
<td>{{ domain.getQuota }}</td>
|
||||
<td><button type="submit" name="domain" value="{{ domain.name }}"><span class="glyphicon glyphicon-trash"></span></button></td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</form>
|
||||
</div>
|
||||
{% endblock %}
|
29
htdocs/tpl/page/login.html
Normal file
29
htdocs/tpl/page/login.html
Normal file
|
@ -0,0 +1,29 @@
|
|||
{% extends 'base.html' %}
|
||||
|
||||
{% block body %}
|
||||
{% include 'notif.html' %}
|
||||
{% if logout %}
|
||||
<div class='login-info bg-info'>Déconnecté</div>
|
||||
{% endif %}
|
||||
|
||||
<div class="loginpage">
|
||||
<div class="loginbox">
|
||||
<div class="illustration">
|
||||
<img src="assets/logo.png" class="img-responsive" alt="Responsive image">
|
||||
</div>
|
||||
<form method="POST" action="auth.php" method="post" name="auth">
|
||||
<div class="form-group has-feedback has-feedback-left">
|
||||
<input type="text" name="login" class="form-control" placeholder="Utilisateur" autofocus="autofocus"/>
|
||||
<i class="glyphicon glyphicon-user form-control-feedback"></i>
|
||||
</div>
|
||||
<div class="form-group has-feedback has-feedback-left">
|
||||
<input type="password" name="password" class="form-control" placeholder="Mot de passe" />
|
||||
<i class="glyphicon glyphicon-lock form-control-feedback"></i>
|
||||
</div>
|
||||
<div class="form-group text-center">
|
||||
<button type="submit" class="btn btn-primary" onclick="return submit_login();">Connexion</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
|
@ -8,27 +8,16 @@
|
|||
<ul class="nav navbar-nav">
|
||||
<li><a href="superadmin.php">Accueil</a></li>
|
||||
<li><a href="help.php">Aide</a></li>
|
||||
<?php
|
||||
if ($server->isSuperAdmin()) { echo '<li><a href="domaine.php">Ajout Domaine</a></li>'; }
|
||||
?>
|
||||
{% if isSuperAdmin %}
|
||||
<li><a href="domaine.php">Ajout Domaine</a></li>
|
||||
{% endif %}
|
||||
<li><a href="auth.php">Déconnexion</a></li>
|
||||
</ul>
|
||||
<p class="navbar-text navbar-right">
|
||||
<?php
|
||||
print "<em>".$server->getLogin()."</em>";
|
||||
if (!empty($domain)) {
|
||||
print ' - Domaine : <a href="admin.php?domain='.$domain->getName().'">'.$domain->getName().'</a>';
|
||||
}
|
||||
?>
|
||||
<em>{{ login }}</em>
|
||||
{% if domain is not null %}
|
||||
- Domaine : <a href="admin.php?domain={{ domain }}">{{ domain }}</a>
|
||||
{% endif %}
|
||||
</p>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
14
htdocs/tpl/page/notif.html
Normal file
14
htdocs/tpl/page/notif.html
Normal file
|
@ -0,0 +1,14 @@
|
|||
{% for alert in alerts %}
|
||||
{% if alert.type == 3 %}
|
||||
<div class="alert alert-info" role="alert">{{ alert.message | raw }}</div>
|
||||
{% endif %}
|
||||
{% if alert.type == 0 %}
|
||||
<div class="alert alert-success" role="alert">{{ alert.message | raw }}</div>
|
||||
{% endif %}
|
||||
{% if alert.type == 1 %}
|
||||
<div class="alert alert-warning" role="alert">{{ alert.message | raw }}</div>
|
||||
{% endif %}
|
||||
{% if alert.type == 2 %}
|
||||
<div class="alert alert-danger" role="alert">{{ alert.message | raw }}</div>
|
||||
{% endif %}
|
||||
{% endfor %}
|
Loading…
Reference in a new issue