public ActionResult ZaboravljenaLozinka(ZaboravljenaLozinkaViewModel model) { if (!ModelState.IsValid) { return(View(Login)); } return(View(ZaboravljenaLozinka)); }
public async Task <IActionResult> ZaboravljenaLozinkaIzmjena(ZaboravljenaLozinkaViewModel lozinkaZ) { if (ModelState.IsValid) { var korisnik = await _UserManager.FindByEmailAsync(lozinkaZ.Email); if (korisnik != null) { var rezultat = await _UserManager.ResetPasswordAsync(korisnik, lozinkaZ.Token, lozinkaZ.Lozinka); if (rezultat.Succeeded) { return(View("NakonIzmjeneZaboravljeneLozinkePoruka")); } foreach (var error in rezultat.Errors) { ModelState.AddModelError("", error.Description); } return(View(lozinkaZ)); } return(View("NakonIzmjeneZaboravljeneLozinkePoruka")); } return(View(lozinkaZ)); }
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")); }