//[HttpPost] //public async Task<IActionResult> SnimiK(ProfilUrediVM model) //{ // IdentityResult x=await _userManager.UpdateAsync(model) //} public IActionResult Snimi(ProfilUrediVM model) { if (ModelState.IsValid) { Korisnik k = HttpContext.GetLogiraniKorisnik(); Kupac kupac = ctx.Kupac.Where(x => x.KorisnikId == k.Id).FirstOrDefault(); k.KorisnickoIme = model.KorisnickoIme; k.LozinkaHash = PasswordSettings.GetHash(model.Lozinka, Convert.FromBase64String(k.LozinkaSalt)); ; k.OpstinaId = model.OpstinaID; HttpContext.SetLogiraniKorisnik(k); ctx.SaveChanges(); kupac.Email = model.Email; kupac.Adresa = model.Adresa; ctx.SaveChanges(); return(RedirectToAction("Index")); } else { return(BadRequest(ModelState)); } }
public IActionResult PromjenaLozinke(PromjenaLozinkeViewModel model) { if (!ModelState.IsValid) { return(View("PromjenaLozinke", model)); } string vrijednost = model.GenerisanaVrijednost; PromjenaLozinke promjenaLozinke = _context.PromjenaLozinkes.SingleOrDefault(i => i.Vrijednost == vrijednost); KorisnickiNalog korisnickiNalog = _context.KorisnickiNalogs.SingleOrDefault (i => i.KorisnickiNalogId == promjenaLozinke.KorisnickiNalogID); if (korisnickiNalog != null) { korisnickiNalog.LozinkaHash = PasswordSettings.GetHash(model.NovaLozinka, Convert.FromBase64String(korisnickiNalog.LozinkaSalt)); } _context.PromjenaLozinkes.Remove(promjenaLozinke); _context.SaveChanges(); TempData["successMessage"] = "Uspješno ste promijenili lozinku."; return(RedirectToAction("Prijava")); }
public IActionResult PromijeniLozinku(ProfilIzmjenaLozinkeViewModel model) { KorisnickiNalog logiraniKorisnik = HttpContext.GetLogiraniKorisnik(); if (logiraniKorisnik.Permisije == 0) { TempData["Layout"] = "_Administrator"; } if (logiraniKorisnik.Permisije == 1) { TempData["Layout"] = "_Stomatolog"; } if (logiraniKorisnik.Permisije == 2) { TempData["Layout"] = "_MedicinskoOsoblje"; } if (logiraniKorisnik.Permisije == 3) { TempData["Layout"] = "_Pacijent"; } if (!ModelState.IsValid) { return(View("IzmjenaLozinke", model)); } if (PasswordSettings.GetHash(model.StaraLozinka, Convert.FromBase64String(logiraniKorisnik.LozinkaSalt)) != logiraniKorisnik.LozinkaHash) { TempData["errorMessage"] = "Netačno unesena trenutna lozinka."; return(RedirectToAction("izmjena-lozinke")); } if (PasswordSettings.GetHash(model.NovaLozinka, Convert.FromBase64String(logiraniKorisnik.LozinkaSalt)) == logiraniKorisnik.LozinkaHash) { TempData["errorMessage"] = "Nova lozinka se treba razlikovati od trenutne."; return(RedirectToAction("izmjena-lozinke")); } if (model.NovaLozinka != model.PotvrdaNoveLozinke) { TempData["errorMessage"] = "Niste potvrdili vašu novu lozinku."; return(RedirectToAction("izmjena-lozinke")); } logiraniKorisnik.LozinkaHash = PasswordSettings.GetHash(model.NovaLozinka, Convert.FromBase64String(logiraniKorisnik.LozinkaSalt)); _context.SaveChanges(); TempData["successMessage"] = "Uspješno ste promijenili lozinku."; return(RedirectToAction("pregled-profila")); }
public IActionResult Snimi(KupciUrediVM model) { if (ModelState.IsValid) { Kupac kupac = ctx.Kupac.Where(x => x.Id == model.KupacId).First(); Korisnik k = ctx.Korisnik.Where(x => x.Id == kupac.KorisnikId).First(); k.KorisnickoIme = model.KorisnickoIme; k.LozinkaHash = PasswordSettings.GetHash(model.Lozinka, Convert.FromBase64String(k.LozinkaSalt)); ctx.SaveChanges(); return(RedirectToAction("IndexKupci", "Korisnici")); } else { return(BadRequest(ModelState)); } }
public IActionResult Snimi(RegistracijaIndexVM model) { if (ModelState.IsValid) { byte[] lozinkaSalt = PasswordSettings.GetSalt(); string lozinkaHash = PasswordSettings.GetHash(model.Lozinka, lozinkaSalt); Korisnik k = new Korisnik { KorisnickoIme = model.KorisnickoIme, LozinkaSalt = Convert.ToBase64String(lozinkaSalt), LozinkaHash = lozinkaHash, OpstinaId = model.OpstinaID, UlogaId = 5 }; ctx.Korisnik.Add(k); ctx.SaveChanges(); Kupac kupac = new Kupac { Ime = model.Ime, Prezime = model.Prezime, Email = model.Email, Adresa = model.Adresa, Spol = model.Spol, KorisnikId = k.Id }; ctx.Kupac.Add(kupac); ctx.SaveChanges(); return(RedirectToAction("PrikazPoruke")); } else { return(BadRequest(ModelState)); } }
public IActionResult SpremiNovogZaposlenika(ZaposleniciDodajVM model) { if (ModelState.IsValid) { byte[] lozinkaSalt = PasswordSettings.GetSalt(); string lozinkaHash = PasswordSettings.GetHash(model.Lozinka, lozinkaSalt); Korisnik k = new Korisnik { KorisnickoIme = model.KorisnickoIme, LozinkaHash = lozinkaHash, LozinkaSalt = Convert.ToBase64String(lozinkaSalt), OpstinaId = model.OpstinaId, UlogaId = model.UlogaId }; ctx.Korisnik.Add(k); ctx.SaveChanges(); Zaposlenik z = new Zaposlenik { Ime = model.Ime, Prezime = model.Prezime, Email = model.Email, Adresa = model.Adresa, Telefon = model.Telefon, KorisnikId = k.Id }; ctx.Zaposlenik.Add(z); ctx.SaveChanges(); return(Redirect("/ModulAdministrator/Korisnici/IndexZaposlenici")); } else { return(BadRequest(ModelState)); } }
public IActionResult Prijava() { if (!_context.Administrators.Any()) { byte[] lozinkaSalt = PasswordSettings.GetSalt(); string lozinkaHash = PasswordSettings.GetHash("Admin24!", lozinkaSalt); if (!_context.Grads.Any()) { if (!_context.Drzavas.Any()) { var novaDrzava = new Drzava { Naziv = "Bosna i Hercegovina" }; _context.Add(novaDrzava); _context.SaveChanges(); } var noviGrad = new Grad { DrzavaId = 1, Naziv = "Jablanica", PostanskiBroj = "88420" }; _context.Add(noviGrad); _context.SaveChanges(); } var AdminKorisnik = new KorisnickiNalog { Ime = "Dino", Prezime = "Nanić", Email = "*****@*****.**", LozinkaHash = lozinkaHash, LozinkaSalt = Convert.ToBase64String(lozinkaSalt), Permisije = 0, Kreirano = DateTime.Now, JMBG = "0101990150023", DatumRodjenja = new DateTime(1990, 1, 1), Mobitel = "38762516238", Adresa = "San BB", GradId = 1, Spol = "Muško", Slika = "blank-profile.jpg" }; _context.Add(AdminKorisnik); _context.SaveChanges(); var NoviAdministrator = new Administrator { KorisnickiNalog = _context.KorisnickiNalogs.SingleOrDefault(i => i.Email == AdminKorisnik.Email), DatumZaposlenja = DateTime.Now, OpisPosla = "Administracija stranice", BrojZiroRacuna = "4343000022225555", Aktivan = true }; _context.Add(NoviAdministrator); _context.SaveChanges(); var novaTitula = new Titula { Naziv = "dr." }; _context.Add(novaTitula); _context.SaveChanges(); } if (HttpContext.GetLogiraniKorisnik() != null) { return(RedirectToAction("Pocetna", "Profil")); } return(View()); }
public IActionResult Registracija(RegistracijaViewModel model) { if (!ModelState.IsValid) { model.Gradovi = _context.Grads.Select (i => new SelectListItem { Text = i.Naziv, Value = i.GradId.ToString() }).ToList(); return(View("Registracija", model)); } if (_context.KorisnickiNalogs.Any(i => i.Email == model.Email)) { TempData["errorMessage"] = "Email adresa se koristi."; model.Gradovi = _context.Grads.Select (i => new SelectListItem { Text = i.Naziv, Value = i.GradId.ToString() }).ToList(); return(View("Registracija", model)); } byte[] lozinkaSalt = PasswordSettings.GetSalt(); string lozinkaHash = PasswordSettings.GetHash(model.Lozinka, lozinkaSalt); //implementiraj izmjenu lozinke ako je 0 na pocetku, prebaci u 387 string uniqueFileName = UploadedFile(model); KorisnickiNalog korisnickiNalog = new KorisnickiNalog { Ime = model.Ime, Prezime = model.Prezime, Email = model.Email, LozinkaHash = lozinkaHash, LozinkaSalt = Convert.ToBase64String(lozinkaSalt), Permisije = 3, Kreirano = DateTime.Now, Mobitel = model.Mobitel, GradId = model.GradID, Adresa = model.Adresa, JMBG = model.JMBG, DatumRodjenja = model.DatumRodjenja, Spol = model.Spol, Slika = uniqueFileName }; Pacijent pacijent = new Pacijent { KorisnickiNalog = korisnickiNalog, AlergijaNaLijek = model.AlergijaNaLijek, Aparatic = model.Aparatic, Navlake = model.Navlake, Proteza = model.Proteza, Terapija = model.Terapija }; _context.KorisnickiNalogs.Add(korisnickiNalog); _context.Pacijents.Add(pacijent); _context.SaveChanges(); TempData["successMessage"] = "Uspješno ste se registrovali."; return(RedirectToAction("Prijava")); }
public IActionResult Prijava(PrijavaViewModel model) { if (!ModelState.IsValid) { return(View(model)); } var korisnickiNalog = _context.KorisnickiNalogs .Where(i => i.Email == model.Email) .AsEnumerable() .Where(i => i.LozinkaHash == PasswordSettings.GetHash(model.Lozinka, Convert.FromBase64String(i.LozinkaSalt))); if (korisnickiNalog == null || !korisnickiNalog.Any()) { TempData["errorMessage"] = "Niste unijeli ispravne podatke za prijavu."; return(View(model)); } if ((korisnickiNalog.First().Permisije == 0 && _context.Administrators .Where(i => i.KorisnickiNalogId == korisnickiNalog.First().KorisnickiNalogId).First().Aktivan) || (korisnickiNalog.First().Permisije == 1 && _context.Stomatologs .Where(i => i.KorisnickiNalogId == korisnickiNalog.First().KorisnickiNalogId).First().Aktivan) || (korisnickiNalog.First().Permisije == 2 && _context.MedicinskoOsobljes .Where(i => i.KorisnickiNalogId == korisnickiNalog.First().KorisnickiNalogId).First().Aktivan) || korisnickiNalog.First().Permisije == 3) { HttpContext.SetLogiraniKorisnik(korisnickiNalog.First(), true); //setuje logiranog korisnika var prijavaLokacijaMail = GetLoginLocation(model.Email, "mail"); //dobavlja informacije o lokaciji prijave var prijavaLokacijaMobitel = GetLoginLocation(model.Email, "mobitel"); //dobavlja informacije o lokaciji prijave var trenutnoVrijeme = DateTime.Now.ToString(new CultureInfo("de-DE")); //trenutno vrijeme prebacuje na njemacki format datum 19.03.2020 15:35:43 var primalacPoruke = korisnickiNalog.First().Ime + " " + korisnickiNalog.First().Prezime; //ime i prezime za email var primalacEmail = korisnickiNalog.First().Email; //primalac email-a var prijavaEmailPoruka = "Poštovani " + primalacPoruke + ",\nDetektovana je prijava na vaš račun" + "\n-----------------------------------------------\n\n" + prijavaLokacijaMail + "\nDatum i vrijeme: " + trenutnoVrijeme + "\n!!!AKO OVO NISTE BILI VI, MOLIMO VAS DA PROMJENITE VAŠU LOZINKU!!!" + "\nIli nas kontaktirajte na naš mail: [email protected]"; //generisanje email poruke var primalacPorukeTelefon = korisnickiNalog.First().Mobitel; //VAZNO!!! UKLONI KOMENTARE DA BI PRORADILO SLANJE PORUKA var client = new Client(creds: new Nexmo.Api.Request.Credentials { ApiKey = _configuration.GetValue <string>("NexmoSmsGateway:ApiKey"), ApiSecret = _configuration.GetValue <string>("NexmoSmsGateway:ApiSecret") }); var results = client.SMS.Send(request: new SMS.SMSRequest { from = "Ordinacija", to = primalacPorukeTelefon, text = prijavaLokacijaMobitel }); EmailSettings.SendEmail(_configuration, primalacPoruke, primalacEmail, "Nova prijava detektovana", prijavaEmailPoruka);//šalje email return(RedirectToAction("Pocetna", "Profil")); } TempData["errorMessage"] = "Niste unijeli ispravne podatke za prijavu."; return(View(model)); }
public IActionResult LoginTwoFactor(LoginTwoFactorVM model) { if (!ModelState.IsValid) { return(RedirectToAction("Login")); } Korisnik korisnik = ctx.Korisnik .SingleOrDefault(x => x.KorisnickoIme == model.username && x.LozinkaHash == PasswordSettings.GetHash(model.password, Convert.FromBase64String(x.LozinkaSalt))); if (korisnik == null) { ViewData["poruka"] = "Pogrešan username ili password"; return(View("Login")); } TwoFactorAuthenticator TwoFacAuth = new TwoFactorAuthenticator(); string current = TwoFacAuth.GetCurrentPIN(korisnik.TwoFactorUniqueKey); bool isValid = current.Equals(model.TwoFactorPin); //bool isValid = true; if (isValid) { HttpContext.SetLogiraniKorisnik(korisnik, snimiUCookie: model.ZapamtiLozinku); return(RedirectToAction("Index", "Home")); } else { ViewData["poruka"] = "Pogrešan kod"; return(View("LoginTwoFactor", model)); } }
public IActionResult Login(LoginVM input) { if (!ModelState.IsValid) { ViewData["poruka"] = "Niste unijeli ispravne podatke"; return(View("Index", input)); } Korisnik korisnik = ctx.Korisnik .SingleOrDefault(x => x.KorisnickoIme == input.username && x.LozinkaHash == PasswordSettings.GetHash(input.password, Convert.FromBase64String(x.LozinkaSalt))); if (korisnik == null) { ViewData["poruka"] = "Pogrešan username ili password"; return(View("Index", input)); } if (!String.IsNullOrEmpty(korisnik.TwoFactorUniqueKey)) { var twoFactorModel = new LoginTwoFactorVM { username = korisnik.KorisnickoIme, password = input.password, ZapamtiLozinku = input.ZapamtiPassword }; return(View("LoginTwoFactor", twoFactorModel)); } else { HttpContext.SetLogiraniKorisnik(korisnik, snimiUCookie: input.ZapamtiPassword); return(RedirectToAction("Index", "Home")); } }
public IActionResult DodajOsoblje(KorisnikDodajOsobljeViewModel model) { if (!ModelState.IsValid) { model.Gradovi = _context.Grads.Select (i => new SelectListItem { Text = i.Naziv, Value = i.GradId.ToString() }).ToList(); model.Titule = _context.Titulas.Select (i => new SelectListItem { Text = i.Naziv, Value = i.TitulaId.ToString() }).ToList(); return(View("DodajOsoblje", model)); } if (_context.KorisnickiNalogs.Any(i => i.Email == model.Email)) { TempData["errorMessage"] = "Email adresa se koristi."; model.Gradovi = _context.Grads.Select (i => new SelectListItem { Text = i.Naziv, Value = i.GradId.ToString() }).ToList(); model.Titule = _context.Titulas.Select (i => new SelectListItem { Text = i.Naziv, Value = i.TitulaId.ToString() }).ToList(); return(View("DodajOsoblje", model)); } byte[] lozinkaSalt = PasswordSettings.GetSalt(); var templozinka = GenerateRandomPassword(); string lozinkaHash = PasswordSettings.GetHash(templozinka, lozinkaSalt); string uniqueFileName = UploadedFile(model); KorisnickiNalog korisnickiNalog = new KorisnickiNalog { Ime = model.Ime, Prezime = model.Prezime, Email = model.Email, LozinkaHash = lozinkaHash, LozinkaSalt = Convert.ToBase64String(lozinkaSalt), Permisije = 2, Kreirano = DateTime.Now, Mobitel = model.Mobitel, GradId = model.GradID, Adresa = model.Adresa, JMBG = model.JMBG, DatumRodjenja = model.DatumRodjenja, Spol = model.Spol, Slika = uniqueFileName }; MedicinskoOsoblje osoblje = new MedicinskoOsoblje { KorisnickiNalog = korisnickiNalog, TitulaID = model.TitulaID, DatumZaposlenja = model.DatumZaposlenja, BrojZiroRacuna = model.BrojZiroRacuna, Aktivan = model.Aktivan, OpisPosla = model.OpisPosla }; _context.KorisnickiNalogs.Add(korisnickiNalog); _context.MedicinskoOsobljes.Add(osoblje); _context.SaveChanges(); string primalacPoruke = korisnickiNalog.Ime + " " + korisnickiNalog.Prezime; string poruka = primalacPoruke + " vaši pristupni podaci su: \nEmail: " + korisnickiNalog.Email + "\nPassword: "******"Nalog napravljen", poruka); TempData["successMessage"] = "Uspješno ste dodali novog uposlenika."; return(RedirectToAction("uredi-osoblje")); }
public IActionResult DodajPacijenta(KorisnikDodajPacijentaViewModel model) { if (!ModelState.IsValid) { model.Gradovi = _context.Grads.Select (i => new SelectListItem { Text = i.Naziv, Value = i.GradId.ToString() }).ToList(); return(View("DodajPacijenta", model)); } if (_context.KorisnickiNalogs.Any(i => i.Email == model.Email)) { TempData["errorMessage"] = "Email adresa se koristi."; model.Gradovi = _context.Grads.Select (i => new SelectListItem { Text = i.Naziv, Value = i.GradId.ToString() }).ToList(); return(View("DodajPacijenta", model)); } byte[] lozinkaSalt = PasswordSettings.GetSalt(); var templozinka = GenerateRandomPassword(); string lozinkaHash = PasswordSettings.GetHash(templozinka, lozinkaSalt); string uniqueFileName = UploadedFile(model); KorisnickiNalog korisnickiNalog = new KorisnickiNalog { Ime = model.Ime, Prezime = model.Prezime, Email = model.Email, LozinkaHash = lozinkaHash, LozinkaSalt = Convert.ToBase64String(lozinkaSalt), Permisije = 3, Kreirano = DateTime.Now, Mobitel = model.Mobitel, GradId = model.GradID, Adresa = model.Adresa, JMBG = model.JMBG, DatumRodjenja = model.DatumRodjenja, Spol = model.Spol, Slika = uniqueFileName }; Pacijent pacijent = new Pacijent { KorisnickiNalog = korisnickiNalog, AlergijaNaLijek = model.AlergijaNaLijek, Aparatic = model.Aparatic, Navlake = model.Navlake, Proteza = model.Proteza, Terapija = model.Terapija }; _context.KorisnickiNalogs.Add(korisnickiNalog); _context.Pacijents.Add(pacijent); _context.SaveChanges(); string primalacPoruke = korisnickiNalog.Ime + " " + korisnickiNalog.Prezime; string poruka = primalacPoruke + " vaši pristupni podaci su: \nEmail: " + korisnickiNalog.Email + "\nPassword: "******"Nalog napravljen", poruka); TempData["successMessage"] = "Uspješno ste dodali novog pacijenta."; return(RedirectToAction("uredi-pacijent")); }