mirror of
https://github.com/pierre42100/comunic
synced 2024-11-17 02:51:13 +00:00
236 lines
10 KiB
PHP
236 lines
10 KiB
PHP
|
<?php
|
||
|
/**
|
||
|
* Manage multiauth
|
||
|
*
|
||
|
* @author Pierre HUBERT
|
||
|
*/
|
||
|
|
||
|
if(!isset($_SESSION))
|
||
|
exit("Invalid call !");
|
||
|
|
||
|
//On a besoin de l'ID du compte parent pour permettre l'exécution de cette page !
|
||
|
if(!isset($_SESSION['ID_parent']))
|
||
|
{
|
||
|
//Rapport d'erreur à l'administration
|
||
|
report_error('if(!isset($_SESSION[\'ID_parent\']))', 'La variable $_SESSION[\'ID_parent\'] n\'existe pas, elle est nécessaire à multi_login_settings.php (inc).');
|
||
|
|
||
|
//Affichage d'un message d'erreur
|
||
|
affiche_message_erreur("Votre navigateur n'a pas bien été connecté à Comunic. Veuillez essayer de vous déconnecter et vous reconnecter et réessayer.");
|
||
|
|
||
|
//Fermeture
|
||
|
exit();
|
||
|
}
|
||
|
|
||
|
if(!isset($bdd))
|
||
|
die('An error occured while accessing the BDD !');
|
||
|
|
||
|
//On vérifie si il faut retourner au compte principal
|
||
|
if(isset($_GET['back_main_account']))
|
||
|
{
|
||
|
//Attribution de l'ID_parent à l'ID
|
||
|
$_SESSION['ID'] = $_SESSION['ID_parent'];
|
||
|
|
||
|
//Retour à la page d'acceuil du site
|
||
|
echo "<script>location.href='".$urlsite."';</script>";
|
||
|
}
|
||
|
|
||
|
//On vérifie si il faut supprimer un compte
|
||
|
if(isset($_GET['delete_entree']) AND isset($_GET['id']))
|
||
|
{
|
||
|
//Définition des variables
|
||
|
$id_entree_to_delete = $_GET['delete_entree']*1;
|
||
|
$id_personne_concernee_1 = $_GET['id']*1;
|
||
|
$id_personne_concernee_2 = $_SESSION['ID_parent']*1;
|
||
|
|
||
|
if($id_entree_to_delete > 0 AND $id_personne_concernee_1 > 0 AND $id_personne_concernee_2 >0)
|
||
|
{
|
||
|
//Suppression de la base de données
|
||
|
delete_sql("multi_login", "ID = ? AND ((ID_personne = ? AND ID_target = ?) OR (ID_target = ? AND ID_personne = ?))", $bdd, array(
|
||
|
$id_entree_to_delete,
|
||
|
$id_personne_concernee_1,
|
||
|
$id_personne_concernee_2,
|
||
|
$id_personne_concernee_1,
|
||
|
$id_personne_concernee_2
|
||
|
));
|
||
|
|
||
|
//Affichage d'un message de succès
|
||
|
?><script>affiche_notification_succes("Le compte a bien été supprimé de la console de multi-authentification.");</script><?php
|
||
|
}
|
||
|
else
|
||
|
//Afficher un message d'erreur
|
||
|
affiche_message_erreur("Une erreur d'entré a empêché la suppression d'avoir lieu !", true);
|
||
|
}
|
||
|
|
||
|
//On vérifie si il faut ajouter un compte
|
||
|
if(isset($_POST['mail_new_account']) AND isset($_POST['pass_new_account']))
|
||
|
{
|
||
|
//On vérifie si les informations sont correctes
|
||
|
$infos_user_add = connnecteruser($_POST['mail_new_account'], $_POST['pass_new_account'], $bdd, true, false, true);
|
||
|
|
||
|
if(!$infos_user_add)
|
||
|
{
|
||
|
//Afficher un message d'erreur
|
||
|
affiche_message_erreur("L'adresse mail ou le mot de passe du compte saisi est/sont incorrects !", true);
|
||
|
}
|
||
|
elseif($infos_user_add['allow_multilogin'] != "1")
|
||
|
{
|
||
|
//Afficher un message d'erreur
|
||
|
affiche_message_erreur("Ce compte refuse la multi-authentification !", true);
|
||
|
}
|
||
|
elseif($infos_user_add['ID'] == $_SESSION['ID_parent'])
|
||
|
{
|
||
|
//Afficher un message d'erreur
|
||
|
affiche_message_erreur("Vous ne pouvez pas ajouter votre propre compte dans le gestionnaire de multi-authentification !", true);
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
|
||
|
//On peut rajouter le comtpe à la liste des comptes connus
|
||
|
insert_sql("multi_login", "ID_personne, ID_target, date_ajout, IP_ajout", "?, ?, NOW(), ?", $bdd, array(
|
||
|
$_SESSION['ID_parent'],
|
||
|
$infos_user_add['ID'],
|
||
|
$_SERVER['REMOTE_ADDR']
|
||
|
));
|
||
|
|
||
|
//Vérification de l'autorisation d'envoi de mails
|
||
|
if($active_envoi_mail == "oui")
|
||
|
{
|
||
|
//Envoi d'un message au demandé
|
||
|
$send_mail = true;
|
||
|
$sujet = "Modification de vos paramètres de multi-authentification";
|
||
|
$description_rapide = "Les paramètres de multi-authentification de votre compte ont été modifiés.";
|
||
|
$nom_destinataire = $infos_user_add['prenom']." ".$infos_user_add['nom'];
|
||
|
$adresse_mail_destinataire = $infos_user_add['mail'];
|
||
|
|
||
|
//Rechargement des informations
|
||
|
$afficher = cherchenomprenom($_SESSION['ID_parent'], $bdd);
|
||
|
|
||
|
$texte_message = "
|
||
|
<h3 class='titre'>Ajout de votre compte à la console de multi-authentification de ".$afficher['prenom']." ".$afficher['nom']."</h3>
|
||
|
<p>Nous vous informons que votre compte a été ajouté à la console de multi-authentification de ".$afficher['prenom']." ".$afficher['nom'].". Si vous n'avez pas fait cette demande, prenez immédiatement contact avec l'administration de Comunic pour rapporter ce problè. ".$afficher['prenom']." ".$afficher['nom']." pourra désormais depuis son compte accéder au vôtre sans saisir votre mot de passe à chaque fois.</p>
|
||
|
";
|
||
|
|
||
|
//Envoi du message
|
||
|
include(websiteRelativePath('inc/envoi_mail.php'));
|
||
|
}
|
||
|
|
||
|
//Affichage d'un message de succès
|
||
|
?><script>affiche_notification_succes("Le compte a bien été ajouté à la console de multi-authentification!");</script><?php
|
||
|
}
|
||
|
}
|
||
|
|
||
|
//Récupération de la liste des comptes qui gèrent le compte de l'utilisateur courant, connecté
|
||
|
$liste_managed = select_sql("multi_login", "ID_target = ?", $bdd, array($_SESSION['ID_parent']));
|
||
|
|
||
|
//Récupération de la liste des comptes qui peuvent être gérés par le compte de l'utilisateur courant, connecté
|
||
|
$liste_accounts_user = select_sql("multi_login", "ID_personne = ?", $bdd, array($_SESSION['ID_parent']));
|
||
|
|
||
|
?><style type="text/css">
|
||
|
.multi_account_listing img { vertical-align: middle; }
|
||
|
|
||
|
.volet_droit_parametres {
|
||
|
max-width: 90% !important;
|
||
|
text-align: justify;
|
||
|
}
|
||
|
</style>
|
||
|
|
||
|
<h3>Gestion de la multi-authentification</h3>
|
||
|
<p>La multi-authentification vous permet de gérer plusieurs comptes rapidement en ne vous connectant qu'à un seul, le compte principal. Il vous est vivement conseillé de choisir un mot de passe sûr pour le compte principal.</p>
|
||
|
|
||
|
|
||
|
<h4> Votre compte </h4>
|
||
|
<p> Multi-authentification autorisée : <b><?php echo ($afficher['allow_multilogin'] == 1 ? "Autorisée" : "Interdite"); ?></b> (Voir la section <i>Général</i>)</p>
|
||
|
<p> Ce compte peut être géré par : </p>
|
||
|
<?php
|
||
|
if(count($liste_managed) == 0)
|
||
|
echo "<p><i>Votre compte n'est actuellement rattaché à aucun compte pour le moment.</i></p>";
|
||
|
else
|
||
|
{
|
||
|
?><div class="grid multi_account_listing"><?php
|
||
|
foreach($liste_managed as $afficher_entree)
|
||
|
{
|
||
|
?><div class="row"><?php
|
||
|
//Recherche des informations de la personne
|
||
|
$infos_personne_manager = cherchenomprenom($afficher_entree['ID_personne'], $bdd);
|
||
|
|
||
|
//Affichage de l'avatar
|
||
|
echo avatar($infos_personne_manager['ID']);
|
||
|
echo " ";
|
||
|
|
||
|
//Affichage du prénom et du nom
|
||
|
echo "<a href='index.php?id=".$infos_personne_manager['ID']."'>".$infos_personne_manager['nom_complet']."</a>";
|
||
|
echo " ";
|
||
|
|
||
|
echo "<img src='".path_img_asset('supp.png')."' class='a' title='Supprimer de la console' onClick='confirmaction(\"".$_SERVER['PHP_SELF']."?c=".$_GET['c']."&delete_entree=".$afficher_entree['ID']."&id=".$infos_personne_manager['ID']."\", \"Souhaitez-vous vraiment supprimer ".$infos_personne_manager['nom_complet']." de la liste des personnes pouvant accéder à votre compte ?\");' />";
|
||
|
|
||
|
?></div><?php
|
||
|
}
|
||
|
?></div><?php
|
||
|
}
|
||
|
?>
|
||
|
<h4>Gérer un compte</h4>
|
||
|
<p> Compte déjà gérés :</p>
|
||
|
|
||
|
<p> Ce compte peut accéder sans saisie de mots de passes aux comptes suivants : </p>
|
||
|
<?php
|
||
|
if(count($liste_accounts_user) == 0)
|
||
|
echo "<p><i>Votre compte ne peut accéder actuellement à aucun compte.</i></p>";
|
||
|
else
|
||
|
{
|
||
|
?><div class="grid multi_account_listing"><?php
|
||
|
foreach($liste_accounts_user as $afficher_entree)
|
||
|
{
|
||
|
?><div class="row"><?php
|
||
|
//Recherche des informations de la personne
|
||
|
$infos_personne_managed = cherchenomprenom($afficher_entree['ID_target'], $bdd);
|
||
|
|
||
|
//On vérifie si il faut utiliser ce compte
|
||
|
if(isset($_GET['use_account']))
|
||
|
{
|
||
|
if($_GET['use_account'] == $infos_personne_managed['ID'])
|
||
|
{
|
||
|
//Attribution de l'ID
|
||
|
$_SESSION['ID'] = $infos_personne_managed['ID'];
|
||
|
|
||
|
//Redirection vers la page d'acceuil
|
||
|
//header('Location: '.$urlsite);
|
||
|
echo '<meta http-equiv="refresh" content="0;URL=index.php">';
|
||
|
}
|
||
|
}
|
||
|
|
||
|
//Affichage de l'avatar
|
||
|
echo avatar($infos_personne_managed['ID']);
|
||
|
echo " ";
|
||
|
|
||
|
//Affichage du prénom et du nom
|
||
|
echo "<a href='index.php?id=".$infos_personne_managed['ID']."'>".$infos_personne_managed['nom_complet']."</a>";
|
||
|
echo " ";
|
||
|
|
||
|
echo "<img src='".path_img_asset('supp.png')."' class='a' title='Supprimer de la console' onClick='confirmaction(\"".$_SERVER['PHP_SELF']."?c=".$_GET['c']."&delete_entree=".$afficher_entree['ID']."&id=".$infos_personne_managed['ID']."\", \"Souhaitez-vous vraiment supprimer ".$infos_personne_managed['nom_complet']." de la liste des personnes auxquelles vous pouvez accéder depuis votre compte ?\");' />";
|
||
|
|
||
|
echo "<a class='button' href='".$_SERVER['PHP_SELF']."?c=".$_GET['c']."&use_account=".$infos_personne_managed['ID']."'><i class='icon-enter'></i> Utiliser ce compte</a>";
|
||
|
|
||
|
?></div><?php
|
||
|
}
|
||
|
?></div><?php
|
||
|
}
|
||
|
?>
|
||
|
|
||
|
<!-- Ajout d'un compte pour la multi-authentification -->
|
||
|
<p> Ajouter un compte : </p>
|
||
|
<form action="<?php echo $_SERVER['PHP_SELF']; ?>?c=<?php echo $_GET['c']; ?>" method="post">
|
||
|
<label>Adresse mail, mot de passe du compte</label>
|
||
|
<!-- Adresse mail -->
|
||
|
<div class="input-control text size3">
|
||
|
<input type="mail" required name="mail_new_account" placeholder="Adresse mail du compte..." />
|
||
|
</div>
|
||
|
|
||
|
<!-- Mot de passe -->
|
||
|
<div class="input-control password size3">
|
||
|
<input type="password" required name="pass_new_account" placeholder="Mot de passe du compte..." />
|
||
|
</div>
|
||
|
|
||
|
<!-- Bouton de validation -->
|
||
|
<input type="submit" value="Ajouter le compte" />
|
||
|
</form>
|
||
|
<!-- Fin du formulaire d'ajout de compte -->
|