public IActionResult AzurirajLicneDetalje(String korisnickoIme, [FromBody] AzurirajLicneDetaljeRequestModel model) { var result = korisnikService.AzurirajLicneDetalje(korisnickoIme, model); if (result.IsOk) { logService.Akcija(Core.Constants.LogLevel.Info, Core.Constants.LogKategorija.korisnik, Core.Constants.LogAkcija.korisnik_izmijeni, "KorisnickoIme: " + result.Value.KorisnickoIme, authService.TrenutniKorisnik().UserName ); } return(Convert(result)); }
//public ServiceResult<KorisnikModel> Aktiviraj(string aktivacijskiToken) //{ // var token = context.AktivacijskiTokeni.FirstOrDefault(x => x.Token == aktivacijskiToken && // !x.Iskoristen); // if (token == null) // return NotFound(); // if (DateTime.Now > token.DatumIsteka) // return Error("Token istekao."); // var korisnik = context.Korisnici.FirstOrDefault(x => x.KorisnickoIme == token.VlasnikKorisnickoIme); // korisnik.EmailVerifikovan = true; // korisnik.Onemogucen = false; // token.Iskoristen = true; // SaveChanges(context); // var result = Map<Korisnik, KorisnikModel>(korisnik); // return result; //} //public ServiceResult<Nothing> ResetSifre(ResetSifreRequestModel model) //{ // var token = context.AktivacijskiTokeni.FirstOrDefault(x => x.Token == model.Token && // !x.Iskoristen); // if (token == null) // return NotFound(); // if (DateTime.Now > token.DatumIsteka) // return Error("Token istekao."); // token.Iskoristen = true; // SaveChanges(context); // var korisnik = context.Korisnici.FirstOrDefault(x => x.KorisnickoIme == token.VlasnikKorisnickoIme); // return PostaviLozinku(korisnik.KorisnickoIme, model.NovaLozinka); //} public ServiceResult <KorisnikModel> AzurirajLicneDetalje(string korisnickoIme, AzurirajLicneDetaljeRequestModel model) { var securityLevel = new SecurityLevel(); var trenutniKorisnik = authService.TrenutniKorisnik(); if (trenutniKorisnik != null && trenutniKorisnik.TrenutnaUloga.VrijednostUAplikaciji != (int)Uloga.Administrator && trenutniKorisnik.KorisnickoIme != korisnickoIme) { return(Error("Nemate pravo pristupa")); } // dobavi razred ako postoji var korisnik = Secure(context.Korisnici.AsQueryable(), securityLevel) .SingleOrDefault(k => k.KorisnickoIme == korisnickoIme); if (korisnik == null) { return(NotFound()); } if (!String.IsNullOrEmpty(model.StaraLozinka)) { if (!ImaPravo("korisnik_korisnik_promjena_lozinke")) { return(Error(PrevediTekst("korisnik_zabranjena_promjena_lozinke", korisnik.Jezik))); } var hashProvider = Scope.Resolve <IHashProvider>(); if (!hashProvider.ValidatePassword(model.StaraLozinka, korisnik.Tajna)) { return(Error(PrevediTekst("neuspjesna_promjena_lozinke", korisnik.Jezik))); } var novaTajna = hashProvider.HashPassword(model.NovaLozinka); korisnik.Tajna = novaTajna; if (model.Odjavi) { // Onemoguci sve tokene var tokeni = context.Tokeni.Where(a => a.VlasnikKorisnickoIme == korisnik.KorisnickoIme && a.DatumIsteka > DateTime.Now).ToList(); foreach (var token in tokeni) { token.DatumIsteka = DateTime.Now.AddMinutes(-1); } } } // postavi vrijednosti korisnik.Email = model.Email; korisnik.PunoIme = model.PunoIme; korisnik.PolId = model.PolId; korisnik.BrojMobitela = model.Telefon; korisnik.Jezik = model.Jezik; /*var korisnikUloge = korisnik.KorisnikUloge.ToList(); * * var korisnikUlogaNajveca = korisnikUloge[0].KorisnikUlogaId; * * var korisnikProjektiKorisnika = Secure(context.KorisnikProjekti.AsQueryable(), securityLevel) * .SingleOrDefault(k => k.KorisnikUlogaId == korisnikUlogaNajveca);*/ SaveChanges(context); // vrati azuriranog korisnika return(VratiKorisnikaPoKorisnickomImenu(korisnickoIme)); }
public ServiceResult <KorisnikModel> AzurirajLicneDetalje(string korisnickoIme, AzurirajLicneDetaljeRequestModel model) { var securityLevel = new SecurityLevel(); // dobavi razred ako postoji var korisnik = Secure(context.Users.AsQueryable(), securityLevel) .SingleOrDefault(k => k.UserName == korisnickoIme); if (korisnik == null) { return(NotFound()); } if (!String.IsNullOrEmpty(model.StaraLozinka)) { if (!ImaPravo("korisnik_korisnik_promjena_lozinke")) { return(Error("Korisniku je zabranjena promjena lozinke")); } var passwordHasher = new PasswordHasher <IdentityKorisnik>(); // uradi validaciju lozinke var valid = passwordHasher.VerifyHashedPassword(korisnik, korisnik.PasswordHash, model.StaraLozinka); if (valid == PasswordVerificationResult.Failed) { return(Error("Neuspješna promjena lozinke")); } var novaTajna = passwordHasher.HashPassword(korisnik, model.NovaLozinka); korisnik.PasswordHash = novaTajna; if (model.Odjavi) { // Onemoguci sve tokene var tokeni = context.Tokeni.Where(a => a.VlasnikId == korisnik.Id && a.DatumIsteka > DateTime.Now).ToList(); foreach (var token in tokeni) { token.DatumIsteka = DateTime.Now.AddMinutes(-1); } } } // postavi vrijednosti korisnik.Email = model.Email; korisnik.NormalizedEmail = model.Email; korisnik.PunoIme = model.PunoIme; korisnik.PhoneNumber = model.Telefon; SaveChanges(context); // vrati azuriranog korisnika return(VratiKorisnikaPoKorisnickomImenu(korisnickoIme)); }