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 ZaboravljenaLozinka(ZaboravljenaLozinkaViewModel model) { if (!ModelState.IsValid) { return(View("ZaboravljenaLozinka", model)); } KorisnickiNalog korisnickiNalog = _context.KorisnickiNalogs.SingleOrDefault(i => i.Email == model.Email); if (korisnickiNalog == null) { TempData["errorMessage"] = "Email adresa se ne koristi."; return(View("ZaboravljenaLozinka", model)); } PromjenaLozinke promjenaLozinke = _context.PromjenaLozinkes.SingleOrDefault (i => i.KorisnickiNalogID == korisnickiNalog.KorisnickiNalogId); if (promjenaLozinke != null) { if ((DateTime.Now - promjenaLozinke.DatumPromjene).TotalHours < 24) { TempData["errorMessage"] = "Email za promjenu lozinke je već poslan."; return(View("ZaboravljenaLozinka", model)); } else { _context.PromjenaLozinkes.Remove(promjenaLozinke); _context.SaveChanges(); } } string primalacPoruke = ""; if (korisnickiNalog.Permisije == 0) { primalacPoruke = korisnickiNalog.Ime + " " + korisnickiNalog.Prezime; } if (korisnickiNalog.Permisije == 1) { primalacPoruke = korisnickiNalog.Ime + " " + korisnickiNalog.Prezime; } if (korisnickiNalog.Permisije == 2) { primalacPoruke = korisnickiNalog.Ime + " " + korisnickiNalog.Prezime; } if (korisnickiNalog.Permisije == 3) { primalacPoruke = korisnickiNalog.Ime + " " + korisnickiNalog.Prezime; } string vrijednost = RandomString.GetString(30); string link = $"{ this.Request.Scheme}://{this.Request.Host}{this.Request.PathBase}/prijava/promjena-lozinke?vrijednost=" + vrijednost; string poruka = "Kako bi promjenili lozinku, morate kliknut na sljedeći link: \n" + link + "\nLink za resetiranje lozinke, će biti aktivan samo 24 sata, a poslije toga će postati nevažeći."; EmailSettings.SendEmail(_configuration, primalacPoruke, korisnickiNalog.Email, "Promjena lozinke", poruka); PromjenaLozinke zahtjevZaPromjenomLozinke = new PromjenaLozinke { Vrijednost = vrijednost, KorisnickiNalogID = korisnickiNalog.KorisnickiNalogId, DatumPromjene = DateTime.Now }; _context.PromjenaLozinkes.Add(zahtjevZaPromjenomLozinke); _context.SaveChanges(); TempData["successMessage"] = "Email za promjenu lozinke uspješno poslan."; return(RedirectToAction("zaboravljena-lozinka")); }