Пример #1
0
        /// <summary>
        /// Metoda koja se poziva prilikom klika na gumb "Spremi promjene".
        /// Ako se zaporke podudaraju i ako polja nisu prazna, zaporka se ažurira
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void BtnSpremiPromjene_Click(object sender, EventArgs e)
        {
            string poruka = "";

            try
            {
                if (pZaporke.BackColor == Color.Green && !string.IsNullOrWhiteSpace(tbNovaZaporka.Text))
                {
                    using (var db = new Entities(Konstante.GetConnectionString()))
                    {
                        var trenutniKorisnik = db.korisnik.Where(x => x.korisnicko_ime.Equals(korisnickoIme)).Single();
                        db.korisnik.Attach(trenutniKorisnik);

                        // ako polje za unos zaporke nije prazno, prije pohrane korisnika, enkriptiraj zaporku
                        if (!string.IsNullOrWhiteSpace(tbNovaZaporka.Text))
                        {
                            trenutniKorisnik.zaporka = Enkripcija.Enkriptiranje(tbNovaZaporka.Text, Konstante.EnkripcijskiKljuc);
                        }
                        else
                        {
                            trenutniKorisnik.zaporka = tbNovaZaporka.Text;
                        }

                        db.SaveChanges();
                    }
                }
                else
                {
                    poruka = "passwords don't match!";
                }
            }
            catch (Exception)
            {
                poruka = "Error occurred during password update. Please check your internet connection!";
            }
            finally
            {
                if (!string.IsNullOrWhiteSpace(poruka))
                {
                    MessageBox.Show(poruka);
                }
                else
                {
                    MessageBox.Show("Password updated!", "Notification", MessageBoxButtons.OK);
                    Close();
                }
            }
        }
Пример #2
0
        /// <summary>
        /// Metoda koja se poziva prilikom klika na gumb "Ulogiraj se". Izvode
        /// se provjere korisničkog imena i zaporke te se pokreće glavna forma
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void BtnUlogirajSe_Click(object sender, EventArgs e)
        {
            // u slučaju da nije uneseno korisničko ime ili zaporka,
            // pojavljuje se label koji sugerira da su ta polja obavezna

            if (string.IsNullOrWhiteSpace(tbKorIme.Text))
            {
                lblUnesiKorIme.Visible = true;
            }
            if (string.IsNullOrWhiteSpace(tbZaporka.Text))
            {
                lblUnesiZaporku.Visible = true;
            }

            if (!string.IsNullOrWhiteSpace(tbKorIme.Text) && !string.IsNullOrWhiteSpace(tbZaporka.Text))
            {
                bool uspjesanLogin = false;
                using (var db = new Entities(Konstante.GetConnectionString()))
                {
                    bool korisnik = db.korisnik.Where(x => x.korisnicko_ime.Equals(tbKorIme.Text)).Any();

                    if (!korisnik)
                    {
                        MessageBox.Show("Invalid user name/password!", "Remark", MessageBoxButtons.OK);
                    }
                    else
                    {
                        // dohvaćamo lozinku iz baze za korisničko ime koje smo proslijedili te ako je lozinka "blank"
                        // pokrećemo formu za postavljanje lozinke. Inače, provjeravamo da li je unos lozinke dobar i pokrećemo glavnu formu

                        var lozinka  = db.korisnik.Where(x => x.korisnicko_ime.Equals(tbKorIme.Text)).Select(x => x.zaporka).FirstOrDefault();
                        var omogucen = db.korisnik.Where(x => x.korisnicko_ime.Equals(tbKorIme.Text)).Select(x => x.omogucen).FirstOrDefault();
                        if (omogucen.Equals("N"))
                        {
                            MessageBox.Show("The user you are trying to log in with is currently disabled. Please contact your administrator", "Warning");
                        }
                        else if (string.IsNullOrWhiteSpace(lozinka))
                        {
                            if (MessageBox.Show("The password of the current user has expired and needs to be changed!", "Remark", MessageBoxButtons.OKCancel) == DialogResult.OK)
                            {
                                FrmPromjenaZaporke forma = new FrmPromjenaZaporke(tbKorIme.Text);
                                forma.ShowDialog();
                            }
                            else
                            {
                                return;
                            }
                        }
                        else
                        {
                            string enkriptiranaLozinka = Enkripcija.Enkriptiranje(tbZaporka.Text, Konstante.EnkripcijskiKljuc);
                            uspjesanLogin = db.korisnik.Where(x => x.korisnicko_ime.Equals(tbKorIme.Text) && x.zaporka.Equals(enkriptiranaLozinka)).Any();
                            if (!uspjesanLogin)
                            {
                                MessageBox.Show("Invalid user name/password!", "Remark", MessageBoxButtons.OK);
                            }
                            else
                            {
                                FrmMain glavnaForma = new FrmMain(this, tbKorIme.Text);
                                glavnaForma.Show();
                                Hide();
                            }
                        }
                    }
                }
            }
        }
Пример #3
0
        /// <summary>
        /// Metoda koja se poziva prilikom klika na gumb "Spremi promjene"
        /// korisnik se ažurira/novi korisnik se pohranjuje u bazu
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void BtnSpremiPromjene_Click(object sender, EventArgs e)
        {
            // varijabla koja se koristi u slučaju greške (sadržava poruku koja će se prikazati)
            string poruka = "";

            // kod se nalazi unutar try-catch-finally bloka kako bi uspješno detektirali greške kao što su CONSTRAINT Violation
            try
            {
                using (var db = new Entities(Konstante.GetConnectionString()))
                {
                    if (korisnik == null)
                    {
                        korisnik noviKorisnik = new korisnik()
                        {
                            korisnicko_ime     = tbKorisnickoIme.Text,
                            ime                = tbIme.Text,
                            prezime            = tbPrezime.Text,
                            datum_rodjenja     = dtpDatumRodjenja.Value,
                            datum_registracije = DateTime.Now,
                            adresa             = tbAdresa.Text,
                            telefon            = tbTelefon.Text,
                            ID_tip_korisnika   = int.Parse(cbTipKorisnika.SelectedValue.ToString()),
                            omogucen           = cbOmogucen.SelectedItem.ToString()
                        };

                        // ako polje za unos zaporke nije prazno, prije pohrane korisnika, enkriptiraj zaporku
                        if (!string.IsNullOrWhiteSpace(tbNovaZaporka.Text))
                        {
                            noviKorisnik.zaporka = Enkripcija.Enkriptiranje(tbNovaZaporka.Text, Konstante.EnkripcijskiKljuc);
                        }
                        else
                        {
                            noviKorisnik.zaporka = tbNovaZaporka.Text;
                        }

                        if (!ProvjeriVrijednosti(noviKorisnik) && pZaporke.BackColor == Color.Green)
                        {
                            db.korisnik.Add(noviKorisnik);
                            db.SaveChanges();
                        }
                        else
                        {
                            poruka = "Make sure all required fields are populated and passwords match!";
                        }
                    }
                    else
                    {
                        db.korisnik.Attach(korisnik);
                        korisnik.korisnicko_ime   = tbKorisnickoIme.Text;
                        korisnik.ime              = tbIme.Text;
                        korisnik.prezime          = tbPrezime.Text;
                        korisnik.datum_rodjenja   = dtpDatumRodjenja.Value;
                        korisnik.adresa           = tbAdresa.Text;
                        korisnik.telefon          = tbTelefon.Text;
                        korisnik.ID_tip_korisnika = int.Parse(cbTipKorisnika.SelectedValue.ToString());
                        korisnik.omogucen         = cbOmogucen.SelectedItem.ToString();

                        // ako polje za unos zaporke nije prazno, prije pohrane korisnika, enkriptiraj zaporku
                        if (!string.IsNullOrWhiteSpace(tbNovaZaporka.Text))
                        {
                            korisnik.zaporka = Enkripcija.Enkriptiranje(tbNovaZaporka.Text, Konstante.EnkripcijskiKljuc);
                        }
                        else
                        {
                            korisnik.zaporka = tbNovaZaporka.Text;
                        }

                        if (!ProvjeriVrijednosti(korisnik) && pZaporke.BackColor == Color.Green)
                        {
                            db.SaveChanges();
                        }
                        else
                        {
                            poruka = "Make sure all required fields are populated and passwords match!";
                        }
                    }
                }
            }
            catch (Exception)
            {
                poruka = "Error occurred while saving user (does this user already exist?)";
            }
            finally
            {
                if (!string.IsNullOrWhiteSpace(poruka))
                {
                    MessageBox.Show(poruka);
                }
                else
                {
                    Close();
                }
            }
        }