public IActionResult Register([Bind("Name,Surname,Adress,Email,Password")] User user) { if (HttpContext.Session.GetObjectFromJson <User>("user") == null || HttpContext.Session.GetObjectFromJson <User>("user").AccountType != 1) { return(RedirectToAction("Games", "Home")); } else { if (!ModelState.IsValid) { return(View(user)); } else { if (EmailExist(user.Email)) { ModelState.AddModelError("Email", "Korisnik s tom email adresom vec postoji!"); return(View(user)); } else { int id = _context.Users.LastOrDefault().Id + 1; user.Id = id; user.Password = Enkripcija.Hash(user.Password); user.AccountType = (int)AccountType.Admin; _context.Users.Add(user); _context.SaveChanges(); return(RedirectToAction("Login", "Home")); } } } }
private void tsmiPromjenitiLozinku_Click(object sender, EventArgs e) { PromjenaLozinkeForma plForma = new PromjenaLozinkeForma(prijavljenZaposleni); if (DialogResult.OK == plForma.ShowDialog()) { try { using (ApotekaDb context = new ApotekaDb()) { prijavljenZaposleni = (from z in context.zaposlenis where z.idZaposlenog == prijavljenZaposleni.idZaposlenog select z).FirstOrDefault(); prijavljenZaposleni.lozinka = Enkripcija.enkriptujLozinku(plForma.Lozinka); context.SaveChanges(); tsslStatusnaLabela.Text = "Lozinka uspješno promjenjena."; } } catch (Exception) { string prk = "Došlo je do greške."; MessageBox.Show(prk, "Greška", MessageBoxButtons.OK, MessageBoxIcon.Error); } } }
/// <summary> /// Metoda koja služi popunjavanju polja u slučaju uređivanja tipa korisnika /// </summary> private void PrikaziVrijednosti() { if (korisnik != null) { tbIdKorisnik.Text = korisnik.ID_korisnik.ToString(); tbKorisnickoIme.Text = korisnik.korisnicko_ime; tbNovaZaporka.Text = Enkripcija.Dekriptiranje(korisnik.zaporka, Konstante.EnkripcijskiKljuc); tbPotvrdiZaporku.Text = Enkripcija.Dekriptiranje(korisnik.zaporka, Konstante.EnkripcijskiKljuc); cbOmogucen.SelectedItem = korisnik.omogucen.ToString(); cbTipKorisnika.SelectedItem = korisnik.ID_tip_korisnika.ToString(); tbIme.Text = korisnik.ime; tbPrezime.Text = korisnik.prezime; dtpDatumRodjenja.Value = korisnik.datum_rodjenja; tbAdresa.Text = korisnik.adresa; tbTelefon.Text = korisnik.telefon; } else { tbIdKorisnik.Visible = false; lIdKorisnik.Visible = false; } // limitiramo date time picker kako ne bi mogli postaviti da je korisnik maloljetan npr. ima 2 godine dtpDatumRodjenja.MaxDate = DateTime.Now.AddYears(-18); }
public async Task <int> PromeniLozinku(Korisnik korisnik, string novaLozinka) { using (var context = new StudentskaSluzbaDBContext()) { var entity = await context.Korisnik.FirstOrDefaultAsync(k => k.Username == korisnik.Username); entity.Password = Enkripcija.Enkriptuj(novaLozinka); return(await context.SaveChangesAsync()); } }
/// <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(); } } }
private async void PromeniLozinku() { if (App.TrenutniKorisnik.Password != Enkripcija.Enkriptuj(StaraLozinka)) { await new MessageDialog("Stara lozinka nije tacna!").ShowAsync(); } else if (NovaLozinka1 != NovaLozinka2) { await new MessageDialog("Nove lozinke se ne poklapaju!").ShowAsync(); } else { await new EFCoreDataProvider().PromeniLozinku(App.TrenutniKorisnik, NovaLozinka1); await new MessageDialog("Uspesno promenjena lozinka").ShowAsync(); GoBack(); } }
public async Task AddReferentAsync(Referent referent) { using (var context = new StudentskaSluzbaDBContext()) { // Prvo dodajem novog korsnika Korisnik k = new Korisnik { Username = referent.UsernameReferenta, Password = Enkripcija.Enkriptuj("1234"), Usertype = "referent" }; await context.Korisnik.AddAsync(k); await context.Referent.AddAsync(referent); await context.SaveChangesAsync(); } }
public IActionResult Login([Bind("Email,Password")] LoginUser user) { if (!ModelState.IsValid) { return(View(user)); } else { if (!EmailExist(user.Email)) { ModelState.AddModelError("Email", "Nepostojeći email"); return(View(user)); } else { User logUser = _context.Users.FirstOrDefault(x => x.Email == user.Email); if (Enkripcija.Hash(user.Password) != logUser.Password) { ModelState.AddModelError("Password", "Kriva zaporka"); return(View(user)); } else { if (logUser.AccountType == 1) { HttpContext.Session.SetObjectAsJson("user", logUser); return(RedirectToAction("Games", "Admin")); } else if (logUser.AccountType == 2) { ModelState.AddModelError("Password", "Korisnik nije administrator"); return(View(user)); } } return(View(user)); } } }
/// <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(); } } } } } }
public async Task <Korisnik> LoginIspravan(string username, string password) { using (var context = new StudentskaSluzbaDBContext()) { var rez = await context.Korisnik.FirstOrDefaultAsync(k => k.Username == username && k.Password == Enkripcija.Enkriptuj(password)); return(rez); } }
private void UnosZaposlenogForma_FormClosing(object sender, FormClosingEventArgs e) { if (unosSacuvan) { string poruka = ""; if (string.IsNullOrEmpty(mtbJmbg.Text.Trim())) { poruka += "JMBG nije unijet.\n"; } if (mtbJmbg.Text.Length < 13 || mtbJmbg.Text.Contains(" ")) { poruka += "JMBG mora sadržavati 13 cifara.\n"; } if (string.IsNullOrEmpty(tbIme.Text.Trim())) { poruka += "Ime nije unijeto.\n"; } if (string.IsNullOrEmpty(tbPrezime.Text.Trim())) { poruka += "Prezime nije unijeto.\n"; } if (string.IsNullOrEmpty(tbAdresa.Text.Trim())) { poruka += "Adresa nije unijeta.\n"; } if (cbMjesto.SelectedItem == null) { poruka += "Mjesto nije izabrato.\n"; } if (cbUloga.SelectedItem == null) { poruka += "Uloga zaposlenog nije izabrata.\n"; } if (string.IsNullOrEmpty(tbStrucnaSprema.Text.Trim())) { poruka += "Stručna sprema nije unijeta.\n"; } if (string.IsNullOrEmpty(tbKorisnickoIme.Text.Trim())) { poruka += "Korisničko ime nije unijeto.\n"; } if (string.IsNullOrEmpty(tbLozinka.Text.Trim())) { poruka += "Lozinka nije unijeta.\n"; } if (string.IsNullOrEmpty(tbPonovljenaLozinka.Text.Trim())) { poruka += "Ponovljena lozinka nije unijeta.\n"; } if (!string.IsNullOrEmpty(tbLozinka.Text.Trim()) && !string.IsNullOrEmpty(tbPonovljenaLozinka.Text.Trim())) { if (!(tbLozinka.Text.Trim()).Equals(tbPonovljenaLozinka.Text.Trim())) { poruka += "Lozinke se ne poklapaju.\n"; } } foreach (zaposleni zp in listaZaposlenih) { if (zp.jmbg.Equals(mtbJmbg.Text)) { poruka += "Postoji zaposleni sa unesenim JMBG.\n"; break; } } foreach (zaposleni zp in listaZaposlenih) { if (zp.korisnickoIme.Equals(tbKorisnickoIme.Text.Trim())) { poruka += "Postoji zaposleni sa unesenim korisničkim imenom.\n"; break; } } if (string.IsNullOrEmpty(poruka)) { try { using (ApotekaDb context = new ApotekaDb()) { int ulogaZap = 1; if (cbUloga.SelectedItem.Equals("menadzer")) { ulogaZap = 2; } var z = new zaposleni() { jmbg = mtbJmbg.Text.Trim(), ime = tbIme.Text.Trim(), prezime = tbPrezime.Text.Trim(), adresa = tbAdresa.Text.Trim(), idMjesta = ((mjesto)cbMjesto.SelectedItem).idMjesta, telefon = tbTelefon.Text.Trim(), email = tbEmail.Text.Trim(), strucnaSprema = tbStrucnaSprema.Text.Trim(), farmaceutskoZvanje = tbFarmaceutskoZvanje.Text.Trim(), sefApoteke = cbSefApoteke.Checked, opisPosla = tbOpisPosla.Text.Trim(), korisnickoIme = tbKorisnickoIme.Text.Trim(), lozinka = Enkripcija.enkriptujLozinku(tbLozinka.Text.Trim()), uloga = ulogaZap, aktivan = true }; context.zaposlenis.Add(z); context.SaveChanges(); statusnaLabela.Text = "Uspješno unijet novi zaposleni."; listaZaposlenih = (from zap in context.zaposlenis where zap.obrisano == false orderby zap.prezime select zap).ToList(); PopuniTabeluZaposlenih(listaZaposlenih); } } catch (Exception) { string prk = "Došlo je do greške."; MessageBox.Show(prk, "Greška", MessageBoxButtons.OK, MessageBoxIcon.Error); } } else { e.Cancel = true; MessageBox.Show(poruka, "Greška", MessageBoxButtons.OK, MessageBoxIcon.Error); } unosSacuvan = false; } }
private void btnPrijava_Click(object sender, EventArgs e) { string korisnickoIme = tbKorisnickoIme.Text; string lozinka = tbLozinka.Text; if (!string.IsNullOrEmpty(korisnickoIme) && !string.IsNullOrEmpty(lozinka)) { try { using (ApotekaDb kontekst = new ApotekaDb()) { var zaposleni = (from c in kontekst.zaposlenis where c.korisnickoIme == korisnickoIme && c.obrisano == false select c).FirstOrDefault(); if (zaposleni != null) { if (zaposleni.aktivan) { if (Enkripcija.enkriptujLozinku(lozinka).Equals(zaposleni.lozinka)) { if (zaposleni.uloga == 10) { MessageBoxManager.Unregister(); if (cbPrijavitiSeKao.SelectedIndex == 0) { FarmaceutForma kForma = new FarmaceutForma(this, zaposleni); pbLogin.Image = Properties.Resources.loginUnlock; pbLogin.Refresh(); Thread.Sleep(500); this.Hide(); kForma.Show(); } else if (cbPrijavitiSeKao.SelectedIndex == 1) { MenadzerForma mForma = new MenadzerForma(this, zaposleni); pbLogin.Image = Properties.Resources.loginUnlock; pbLogin.Refresh(); Thread.Sleep(500); this.Hide(); mForma.Show(); } else { AdminForma aForma = new AdminForma(this, zaposleni); pbLogin.Image = Properties.Resources.loginUnlock; pbLogin.Refresh(); Thread.Sleep(500); this.Hide(); aForma.Show(); } tbLozinka.Clear(); } else if (zaposleni.uloga == 2) { if (cbPrijavitiSeKao.SelectedIndex == 0) { MessageBox.Show("Ne možete se prijaviti kao farmaceut sa ovim nalogom.", "Poruka", MessageBoxButtons.OK, MessageBoxIcon.Information); cbPrijavitiSeKao.Select(); } else if (cbPrijavitiSeKao.SelectedIndex == 2) { MessageBox.Show("Ne možete se prijaviti kao administrator sa ovim nalogom.", "Poruka", MessageBoxButtons.OK, MessageBoxIcon.Information); cbPrijavitiSeKao.Select(); } else { MenadzerForma mForma = new MenadzerForma(this, zaposleni); pbLogin.Image = Properties.Resources.loginUnlock; pbLogin.Refresh(); Thread.Sleep(500); tbLozinka.Clear(); this.Hide(); mForma.Show(); } } else if (zaposleni.uloga == 1) { if (cbPrijavitiSeKao.SelectedIndex == 1) { MessageBox.Show("Ne možete se prijaviti kao menadžer sa ovim nalogom.", "Poruka", MessageBoxButtons.OK, MessageBoxIcon.Information); cbPrijavitiSeKao.Select(); } else if (cbPrijavitiSeKao.SelectedIndex == 2) { MessageBox.Show("Ne možete se prijaviti kao administrator sa ovim nalogom.", "Poruka", MessageBoxButtons.OK, MessageBoxIcon.Information); cbPrijavitiSeKao.Select(); } else { FarmaceutForma kForma = new FarmaceutForma(this, zaposleni); pbLogin.Image = Properties.Resources.loginUnlock; pbLogin.Refresh(); Thread.Sleep(500); tbLozinka.Clear(); this.Hide(); kForma.Show(); } } } else { MessageBox.Show("Pogrešna lozinka.", "Greška", MessageBoxButtons.OK, MessageBoxIcon.Error); tbLozinka.Clear(); tbLozinka.Select(); } } else { MessageBox.Show("Nalog je deaktiviran.", "Poruka", MessageBoxButtons.OK, MessageBoxIcon.Information); tbKorisnickoIme.Select(); } } else { MessageBox.Show("Ne postoji registrovan korisnik sa unesenim korisničkim imenom.", "Poruka", MessageBoxButtons.OK, MessageBoxIcon.Information); tbKorisnickoIme.Select(); } } } catch (Exception) { string prk = "Došlo je do greške."; MessageBox.Show(prk, "Greška", MessageBoxButtons.OK, MessageBoxIcon.Error); } } else { string poruka = ""; if ("".Equals(korisnickoIme)) { poruka += "Korisničko ime nije unijeto.\n"; tbKorisnickoIme.Select(); } if ("".Equals(lozinka)) { if (!"".Equals(korisnickoIme)) { tbLozinka.Select(); } poruka += "Lozinka nije unijeta."; } MessageBox.Show(poruka, "Greška", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
/// <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(); } } }