public frm_Temps(Utilisateur unUtilisateur, ConfigLogiciel uneConfigLogicielle) { InitializeComponent(); utilisateur = unUtilisateur; configLogiciel = uneConfigLogicielle; }
public void clore(int tempsPasse) { Utilisateur utilisateur = new Utilisateur(_idUtilisateur); MySqlConnection cnn = new MySqlConnection(Parametres.connectionString); try { cnn.Open(); String sql = "UPDATE tab_resa SET `duree_resa`= @tempsPasse, `status_resa`= @statutResa WHERE `id_resa` = @idResa"; MySqlCommand cmd = new MySqlCommand(sql, cnn); cmd.Parameters.AddWithValue("@tempsPasse", tempsPasse); if(utilisateur.statut != 1 ) { _statut = 2; // animateur ou plus } else { _statut = 1; // usager } cmd.Parameters.AddWithValue("@statutResa", _statut.ToString()); cmd.Parameters.AddWithValue("@idResa", _id); if (Parametres.debug == "all") { MainForm.writeLog("Resa.cs->Clore(tempsPasse) : requete sql -------------------"); string query = cmd.CommandText; foreach (MySqlParameter p in cmd.Parameters) { query = query.Replace(p.ParameterName, p.Value.ToString()); } MainForm.writeLog(query); } cmd.ExecuteNonQuery(); } catch (Exception ex) { MainForm.writeLog("Resa.cs->clore(tempsPasse) : Connexion echouée !!" + ex.ToString()); } cnn.Close(); }
private void login(Utilisateur utilisateur) { if (Parametres.debug == "all") { MainForm.writeLog("mainForm.cs->login"); MainForm.writeLog("mainForm.cs->login : login ok"); MainForm.writeLog("nom utilisateur : " + utilisateur.nom); MainForm.writeLog("prenom utilisateur : " + utilisateur.prenom); MainForm.writeLog("id utilisateur : " + utilisateur.id); MainForm.writeLog("statut utilisateur : " + utilisateur.statut); } utilisateur.majDerniereVisite(); Boolean estAnimateur = (utilisateur.statut != 1); Boolean estPosteAnimateur = (Parametres.poste_type != "usager"); if (Parametres.debug == "all") { if (estAnimateur) { MainForm.writeLog("mainForm.cs->login : connexion animateur"); } else { MainForm.writeLog("mainForm.cs->login : usager standard"); MainForm.writeLog("temps restant : " + utilisateur.tempsRestant()); } } if (estAnimateur || ( utilisateur.tempsRestant() > 0 && !utilisateur.estConnecte(Parametres.poste_id) ) ) { if (Parametres.debug == "all") { MainForm.writeLog("mainForm.cs->login : temps ok, demandes de blocages et affichage du temps"); } goFullscreen(!estPosteAnimateur); blocageMenu(!estAnimateur); Fonction.blocageGestionnaireDesTaches(!estAnimateur); Fonction.blocageChangementMotDePasse(!estAnimateur); blocageRaccourcisClavier(false); this.Hide(); frmTemps = new frm_Temps(utilisateur, configLogiciel); frmTemps.ShowInTaskbar = false; frmTemps.ShowDialog(); utilisateur.majDerniereVisite(); // remise en place des blocages en fonction de la configuration du poste if (Parametres.debug == "all") { MainForm.writeLog("mainForm.cs->login : remise en place des blocages"); } this.Show(); goFullscreen(!estPosteAnimateur); blocageMenu(!estPosteAnimateur); blocageRaccourcisClavier(!estPosteAnimateur); Fonction.blocageGestionnaireDesTaches(!estPosteAnimateur); Fonction.blocageChangementMotDePasse(!estPosteAnimateur); resetFormLogin(); } else { if (utilisateur.tempsRestant() <= 0) { MessageBox.Show("Crédit temps dépassé !!"); } if (utilisateur.estConnecte(Parametres.poste_id)) { MessageBox.Show("Utilisateur déjà connecté !!"); } } }
/// <summary> /// Mise à jour des données de connexion dans la base CyberGestionnaire. /// /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void timer_MAJEtat_Tick(object sender, EventArgs e) { if (Parametres.debug == "all") { MainForm.writeLog("mainForm.cs->timer_MAJEtat_Tick : Tick 5s !"); } // vérification des réservations actives int idResa = Resa.prochaineResa(poste.id); if (idResa != 0) { prochaineResa = new Resa(idResa); prochainUtilisateur = new Utilisateur(prochaineResa.idUtilisateur); TimeSpan diff = DateTime.Now - prochaineResa.debutDeSession; lbl_resa_texte.Text = "Prochaine réservation du poste"; lbl_resa.Text = prochaineResa.dateResa.AddMinutes(prochaineResa.debut).ToString("G") + " (durée : " + prochaineResa.duree + " mn)"; if (diff.TotalMinutes > -5 && diff.TotalMinutes < prochaineResa.duree) // on verrouille 5 minutes avant { lbl_resa.Text = lbl_resa.Text + "\n (poste verrouillé pour " + prochainUtilisateur.prenom + " " + prochainUtilisateur.nom + ")"; lbl_resa.ForeColor = System.Drawing.Color.Red; } else { lbl_resa.ForeColor = System.Drawing.Color.Blue; } } else { lbl_resa.Text = ""; lbl_resa_texte.Text = ""; } }
private void btn_Connexion_Click(object sender, EventArgs e) { if (Parametres.debug == "all") { MainForm.writeLog("mainForm.cs->btn_Connexion_Click"); } Utilisateur utilisateur = new Utilisateur(textBox_Utilisateur.Text, textBox_MotDePasse.Text); if (utilisateur.id != 0) { if (utilisateur.statut != 1) // cas du login animateur/administrateur { login(utilisateur); } else { // est ce qu'il existe une résa future ? if (prochaineResa != null && prochaineResa.id != 0) { // combien de temps reste t'il avant le début de la session ? TimeSpan diff = DateTime.Now - prochaineResa.debutDeSession; if (diff.TotalMinutes > -5 && diff.TotalMinutes < prochaineResa.duree) // on verrouille 5 minutes avant { // dans un intervalle de 5 minutes avant jusqu'à la fin théorique de la résa // seul l'utilisateur ayant effectué la résa peut se logguer if (utilisateur.login == prochainUtilisateur.login) { prochaineResa.activer(); login(utilisateur); } else { MessageBox.Show("Poste réservé à " + prochainUtilisateur.prenom + " " + prochainUtilisateur.nom + " !!", "Login impossible sur ce poste"); } } else { login(utilisateur); } } else { // pas de résa à venir login(utilisateur); } } } else { MessageBox.Show("login ou mot de passe inconnu"); } }