Example #1
0
        public async Task <IActionResult> UrediProfil(int Id)
        {
            AuthenticationUrediProfilVM model = await _db.Users.Select(x => new AuthenticationUrediProfilVM
            {
                Id            = x.Id,
                Email         = x.Email,
                Ime           = x.Ime,
                KorisnickoIme = x.UserName,
                Prezime       = x.Prezime,
                Telefon       = x.PhoneNumber
            }).FirstOrDefaultAsync(x => x.Id == Id);

            return(View(model));
        }
Example #2
0
        public async Task <IActionResult> Snimi([FromBody] AuthenticationUrediProfilVM korisnik)
        {
            var k = await _db.Users.FirstOrDefaultAsync(x => x.Id == korisnik.Id);

            if (k == null)
            {
                return(NotFound());
            }

            k.Ime     = korisnik.Ime;
            k.Prezime = korisnik.Prezime;
            if (k.UserName != korisnik.KorisnickoIme)
            {
                string usernameError            = "";
                var    izmjernaKorisnickogImena = await _userManager.SetUserNameAsync(k, korisnik.KorisnickoIme);

                if (!izmjernaKorisnickogImena.Succeeded)
                {
                    usernameError = "Korisničko ime već postoji.";
                }
                if (!string.IsNullOrWhiteSpace(usernameError))
                {
                    return(BadRequest(usernameError));
                }
            }
            if (k.Email != korisnik.Email)
            {
                var izmjenaEmaila = await _userManager.ChangeEmailAsync(k, korisnik.Email, await _userManager.GenerateChangeEmailTokenAsync(k, korisnik.Email));

                if (!izmjenaEmaila.Succeeded)
                {
                    string emailError = "";
                    foreach (var error in izmjenaEmaila.Errors)
                    {
                        if (error.Code == "InvalidEmail")
                        {
                            emailError = "Email netačnog formata.";
                        }
                        else if (error.Code == "DuplicateEmail")
                        {
                            emailError = "Email već postoji.";
                        }
                    }
                    if (!string.IsNullOrWhiteSpace(emailError))
                    {
                        return(BadRequest(emailError));
                    }
                }
            }

            if (k.PhoneNumber != korisnik.Telefon)
            {
                await _userManager.ChangePhoneNumberAsync(k, korisnik.Telefon, await _userManager.GenerateChangePhoneNumberTokenAsync(k, korisnik.Telefon));
            }

            if (!string.IsNullOrWhiteSpace(korisnik.Lozinka))
            {
                var promjenaLozinke = await _userManager.ResetPasswordAsync(k, await _userManager.GeneratePasswordResetTokenAsync(k), korisnik.Lozinka);

                if (!promjenaLozinke.Succeeded)
                {
                    return(Ok("Lozinka mora sadržavati minimalno 6 karaktera, od čega minimalno jedno veliko slovo i jedan broj."));
                }
            }
            await _db.SaveChangesAsync();

            await _signInManager.SignOutAsync();

            await _signInManager.SignInAsync(k, true);

            return(Ok());
        }