/** Constructeur du modèle * Constructeur privé, crée l'instance de PDO qui sera sollicitée pour toutes les méthodes de la classe */ public static function seConnecter() { try { GsbModele::$driver = GsbConfig::$BdType . ':host=' . GsbConfig::$BdServeur . ';dbname=' . GsbConfig::$BdBase; GsbModele::$pdo = new PDO(GsbModele::$driver, GsbConfig::$BdUtilisateur, GsbConfig::$BdMotDePasse); GsbModele::$pdo->query("SET CHARACTER SET utf8"); // règle les problème d'encodage } catch (Exception $e) { Controleur::erreurConnexionBdd("Erreur de connexion \n" . $e->getMessage()); } }
function validerSaisieEchantillons(&$choixMedicament, &$qteOfferte) { $valid = array("choixMedicament" => 1, "qteOfferte" => 1); if (is_null($choixMedicament) || is_null($qteOfferte)) { $valid["choixMedicament"] = 0; $valid["qteOfferte"] = 0; } else { if (!is_array(GsbModele::getLeMedicamentDetails($choixMedicament))) { $valid["choixMedicament"] = 0; } if (intval($qteOfferte) != $qteOfferte) { $valid["qteOfferte"] = 0; } else { if ($qteOfferte <= 0 || $qteOfferte > 500) { $valid["qteOfferte"] = 0; } } } return $valid; }
<?php if (!isset($_REQUEST['action'])) { $_REQUEST['action'] = 'demandeConnexion'; } $action = $_REQUEST['action']; switch ($action) { case 'valide': $login = $_REQUEST['login']; $mdp = $_REQUEST['mdp']; $visiteur = GsbModele::getInfosVisiteur($login, $mdp); if (!is_array($visiteur)) { ajouterErreur("Login ou mot de passe incorrect"); include "vues/v_erreurs.php"; include "vues/v_auth_connexion.php"; } else { $_SESSION['login'] = $login; // mémorise les variables de session $_SESSION['id'] = $visiteur['VIS_MATRICULE']; $_SESSION['nom'] = $visiteur['VIS_NOM']; $_SESSION['prenom'] = $visiteur['VIS_PRENOM']; include "vues/v_site_sommaire.php"; include "vues/v_page_accueil.php"; } break; case 'deconnexion': include "vues/v_auth_deconnexion.php"; session_destroy(); break; case 'connexion': default:
/** * Controleur des visiteurs gsb de l'application GSB * @package default * @author Kim Paviot, Julien Dignat and Christophe Sonntag * @version 1.1 */ // Verifie que l'utilisateur est connecté Controleur::doitValiderAutorisation(GsbUtilisateur::estConnecte()); switch (Controleur::$action) { case "liste": // Verifie que l'utilisateur est délégué Controleur::doitValiderAutorisation(GsbUtilisateur::estRoleResponsable(), "Vous devez être responsable"); // Vue::$title = "Consulter les visiteurs"; Vue::configToDataTable("DataTableVisiteur"); $lesVisiteurs = GsbModele::getLesVisiteurs(); $lesVisiteursSontVide = count($lesVisiteurs) == 0; Controleur::composeVue("vues/visiteur/liste.php"); break; /* case "details": $lesPraticiens = GsbModele::getLesPraticiens(); $lesPraticiensSontVide = count($lesPraticiens) == 0; $lePraticien = null; $lePraticienNum = null; if(isset($_GET["num"])) { $lePraticien = GsbModele::getLePraticienDetails($_GET["num"]); if($lesPraticiens) $lePraticienNum = $lePraticien["PRA_NUM"]; else $lePraticien = null;
/** * Permet de connaitre le role de l'utilisateur */ public static function avoirLeRole() { $utilisateurRoles = GsbModele::getLeVisiteurRole(GsbUtilisateur::$Matricule); GsbUtilisateur::$RoleUtilisateur = GsbUtilisateurEnumRole::Inconnu; if (!isset($utilisateurRoles["ROLE_CODE"])) { return; } switch ($utilisateurRoles["ROLE_CODE"]) { case "V": GsbUtilisateur::$RoleUtilisateur = GsbUtilisateurEnumRole::Visiteur; break; case "D": GsbUtilisateur::$RoleUtilisateur = GsbUtilisateurEnumRole::Delegue; break; case "R": GsbUtilisateur::$RoleUtilisateur = GsbUtilisateurEnumRole::Responsable; break; } }
case "liste": Vue::$title = "Consulter les médicaments"; Vue::configToDataTable("DataTableMedicaments"); $lesMedicaments = GsbModele::getLesMedicaments(); $lesMedicamentsSontVide = count($lesMedicaments) == 0; Controleur::composeVue("vues/medicament/liste.php"); break; case "details": $lesMedicaments = GsbModele::getLesMedicaments(); $lesMedicamentsSontVide = count($lesMedicaments) == 0; $leMedicament = null; $leMedicamentDepot = null; $leMedicamentPrecedant = null; $leMedicamentSuivant = null; if (isset($_GET["depot"])) { $leMedicament = GsbModele::getLeMedicamentDetails($_GET["depot"]); if ($leMedicament && $lesMedicaments) { $leMedicamentDepot = $leMedicament["MED_DEPOTLEGAL"]; $lesMedicamentsTaille = count($lesMedicaments); for ($i = 0; $i < $lesMedicamentsTaille; $i++) { if ($leMedicament["MED_DEPOTLEGAL"] == $lesMedicaments[$i]["MED_DEPOTLEGAL"]) { if ($i > 0) { $leMedicamentPrecedant = $lesMedicaments[$i - 1]; } if ($i + 1 < $lesMedicamentsTaille) { $leMedicamentSuivant = $lesMedicaments[$i + 1]; } break; // Arrète le FOR } }
<?php /** * Controleur du profile de l'application GSB * @package default * @author Kim Paviot, Julien Dignat and Christophe Sonntag * @version 1.1 */ // Verifie que l'utilisateur est connecté Controleur::doitValiderAutorisation(GsbUtilisateur::estConnecte()); switch (Controleur::$action) { case null: case "statut": Vue::$title = 'Mon statut'; $leVisiteur = GsbModele::getInfosVisiteurMatricule(GsbUtilisateur::$Matricule); $leVisiteurRole = GsbModele::getLeVisiteurRole(GsbUtilisateur::$Matricule); Controleur::composeVue("vues/profile/statut.php"); break; /* * Pas obligatoire case "parametres": Vue::$title = "Parametres"; Controleur::composeVue("vues/profile/parametres.php"); break; */ }
*/ require_once "utilitaires/gsb.config.php"; /****************************/ /** Gestion des vues */ require_once "utilitaires/vue.php"; /** Gestion des controleurs */ require_once "utilitaires/controleur.php"; /****************************/ /** Modèle des donnée a trater depuis la base */ require_once "utilitaires/gsb.modele.php"; /** Initialisation du Modèle */ GsbModele::seConnecter(); /** Relation des utilisateurs dans GSB */ require_once "utilitaires/gsb.utilisateur.php"; /****************************/ /** Outils pour traiters les url */ require_once "utilitaires/outils.url.php"; /** Outils pour traiters les dates */ require_once "utilitaires/outils.date.php"; /** Outils pour traiters les erreurs */ require_once "utilitaires/outils.erreur.php"; /** Outils pour traiters les formulaires */
case "connexion": // Si l'utilisateur est connecté alors une vue de redirection s'affiche if (GsbUtilisateur::estConnecte()) { Vue::$title = "Redirection connexion"; $rechargement_temps = 5; Vue::$HeaderSupplement .= '<META http-equiv="Refresh" content="' . $rechargement_temps . '; URL=' . OutilsUrl::composer("page", "accueil") . '">'; Controleur::composeVue("vues/compte/connexion-redirection.php", false); break; } Vue::$title = "Connexion"; $info_connexion = null; // Si le Formulaire est envoyé if (isset($_POST["login"]) && isset($_POST["password"])) { // Si la clé du formilaire est valide if (OutilsForm::valideFormulaireId("connexion")) { $utilisateur = GsbModele::getInfosVisiteur($_POST["login"], md5(GsbConfig::$AuthKey . $_POST["password"])); if (is_array($utilisateur)) { // Connecte l'utilisateur GsbUtilisateur::seConnecter($utilisateur['VIS_LOGIN'], $utilisateur['VIS_NOM'], $utilisateur['VIS_PRENOM'], $utilisateur['VIS_MATRICULE'], $utilisateur['VIS_EMAIL']); // Redirige l'utilisateur instantanément (0s) Vue::$title = "Redirection connexion"; $rechargement_temps = 0; Vue::$HeaderSupplement .= '<META http-equiv="Refresh" content="' . $rechargement_temps . '; URL=' . OutilsUrl::composer("page", "accueil") . '">'; header('Location: ' . OutilsUrl::composer("page", "accueil")); Controleur::composeVue("vues/compte/connexion-redirection.php", false); // Se souvenir de moi if (isset($_POST["remember"])) { $_SESSION["RappelUtilisateurLogin"] = $_POST["login"]; $_SESSION["RappelUtilisateurActif"] = true; } else { if (isset($_SESSION["RappelUtilisateurLogin"])) {
$lesPraticiens = GsbModele::statPraticienType(); $lesPraticiensSontVide = count($lesPraticiens) == 0; // $graphiqueData = array(); foreach ($lesPraticiens["stat"] as $unType) { $graphiqueData[] = array("label" => $unType["TYP_LIBELLE"] . " (" . $unType["TYP_CODE"] . ")", "data" => $unType["nb"]); } Vue::configToGraphiqueCamembert("CamembertStatistique", $graphiqueData); // Ajoute un cammember // Controleur::composeVue("vues/statistique/type-praticiens.php"); break; case "visite-labo": Vue::$title = "Visites de labo"; Vue::configToDataTable("DataTableStatistique"); $lesVisiteurs = GsbModele::statVisiteLabo(); $lesVisiteursSontVide = count($lesVisiteurs) == 0; // $graphiqueData = array(); foreach ($lesVisiteurs["stat"] as $unVisiteur) { $graphiqueData[] = array("label" => $unVisiteur["LAB_NOM"] . " (" . $unVisiteur["LAB_CODE"] . ")", "data" => $unVisiteur["nb"]); } Vue::configToGraphiqueCamembert("CamembertStatistique", $graphiqueData); // Ajoute un cammember // Controleur::composeVue("vues/statistique/visite-labo.php"); break; /* case "details": $lesPraticiens = GsbModele::getLesPraticiens(); $lesPraticiensSontVide = count($lesPraticiens) == 0;
Vue::$title = "Consulter les praticiens"; Vue::configToDataTable("DataTablePraticien"); $lesPraticiens = GsbModele::getLesPraticiens(); $lesPraticiens = GsbModele::getLesPraticiens(); $lesPraticiensSontVide = count($lesPraticiens) == 0; Controleur::composeVue("vues/praticien/liste.php"); break; case "details": $lesPraticiens = GsbModele::getLesPraticiens(); $lesPraticiensSontVide = count($lesPraticiens) == 0; $lePraticien = null; $lePraticienNum = null; $lePraticienPrecedant = null; $lePraticienSuivant = null; if (isset($_GET["num"])) { $lePraticien = GsbModele::getLePraticienDetails($_GET["num"]); if ($lePraticien && $lesPraticiens) { $lePraticienNum = $lePraticien["PRA_NUM"]; $lesPraticiensTaille = count($lesPraticiens); for ($i = 0; $i < $lesPraticiensTaille; $i++) { if ($lePraticien["PRA_NUM"] == $lesPraticiens[$i]["PRA_NUM"]) { if ($i > 0) { $lePraticienPrecedant = $lesPraticiens[$i - 1]; } if ($i + 1 < $lesPraticiensTaille) { $lePraticienSuivant = $lesPraticiens[$i + 1]; } break; // Arrète le FOR } }