예제 #1
0
 public frm_Temps(Utilisateur unUtilisateur, ConfigLogiciel uneConfigLogicielle)
 {
     InitializeComponent();
     utilisateur = unUtilisateur;
     configLogiciel = uneConfigLogicielle;
 }
예제 #2
0
파일: Resa.cs 프로젝트: ctariel/LGB-Connect
        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();

        }
예제 #3
0
        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é !!");
                }
            }
        }
예제 #4
0
        /// <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 = "";
            }
        }
예제 #5
0
        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");
            }
        }