Esempio n. 1
0
        public ActionResult <Model.Korisnik> Auth()
        {
            if (!Request.Headers.ContainsKey("Authorization"))
            {
                return(BadRequest(new { message = "Missing Authorization Header" }));
            }
            Model.Korisnik user = null;
            try
            {
                var authHeader      = AuthenticationHeaderValue.Parse(Request.Headers["Authorization"]);
                var credentialBytes = Convert.FromBase64String(authHeader.Parameter);
                var credentials     = Encoding.UTF8.GetString(credentialBytes).Split(':');

                var username = credentials[0];
                var password = credentials[1];
                user = _userService.Authenticate(username, password);
            }
            catch
            {
                return(BadRequest(new { message = "Invalid Authorization Header" }));
            }



            if (user == null)
            {
                return(BadRequest(new { message = "Username or password is incorrect" }));
            }

            return(Ok(user));
        }
        private async void btnSave_Click(object sender, EventArgs e)
        {
            KorisnikUpsertRequest request = new KorisnikUpsertRequest();

            request.Email         = txtEmail.Text;
            request.KorisnickoIme = txtUserNAme.Text;
            request.Ime           = txtName.Text;
            request.Prezime       = txtSurname.Text;
            request.Telefon       = txtPhoneNumb.Text;
            int id = await _serviceGetID.Get <int>(new KorisnikSearchRequest { KorisnickoIme = APIService.UserName });

            Model.Korisnik k = await _service.Update <Korisnik>(id, request);

            MessageBox.Show("Changed completed", "Succes", MessageBoxButtons.OK, MessageBoxIcon.Information);

            txtEmail.Text       = k.Email;
            txtName.Text        = k.Ime;
            txtSurname.Text     = k.Prezime;
            txtUserNAme.Text    = k.KorisnickoIme;
            txtPhoneNumb.Text   = k.Telefon;
            APIService.UserName = k.KorisnickoIme;

            if (k.Email.Equals("*****@*****.**") &&
                k.Ime.Equals("Unesi ime") &&
                k.Prezime.Equals("Unesi prezime") &&
                k.Telefon.Equals("000/000-000"))
            {
                APIService.EditovanProfil = false;
            }
            else
            {
                APIService.EditovanProfil = true;
            }
        }
        protected override async Task <AuthenticateResult> HandleAuthenticateAsync()
        {
            if (!Request.Headers.ContainsKey("Authorization"))
            {
                return(AuthenticateResult.Fail("Missing authorization header"));
            }

            Model.Korisnik      user  = null;
            Model.Administrator admin = null;

            try
            {
                var authHeader      = AuthenticationHeaderValue.Parse(Request.Headers["Authorization"]);
                var credentialBytes = Convert.FromBase64String(authHeader.Parameter);
                var credentials     = Encoding.UTF8.GetString(credentialBytes).Split(":");
                var username        = credentials[0];
                var password        = credentials[1];
                user  = _userService.Autentificiraj(username, password);
                admin = _adminService.Autentificiraj(username, password);
            }
            catch
            {
                return(AuthenticateResult.Fail("Invalid authorization header"));
            }
            if (user == null && admin == null)
            {
                return(AuthenticateResult.Fail("Invalid username or password"));
            }

            List <Claim> claims = null;

            if (user != null)
            {
                claims = new List <Claim>
                {
                    new Claim(ClaimTypes.NameIdentifier, user.Username),
                    new Claim(ClaimTypes.Name, user.Ime),
                    new Claim(ClaimTypes.Role, user.Uloga)
                };
            }
            else if (admin != null)
            {
                claims = new List <Claim>
                {
                    new Claim(ClaimTypes.NameIdentifier, admin.Username),
                    new Claim(ClaimTypes.Name, admin.Ime),
                    new Claim(ClaimTypes.Role, admin.Uloga)
                };
            }

            var identity = new ClaimsIdentity(claims, Scheme.Name);
            var princpal = new ClaimsPrincipal(identity);
            var ticket   = new AuthenticationTicket(princpal, Scheme.Name);

            return(AuthenticateResult.Success(ticket));
        }
Esempio n. 4
0
        public Model.Korisnik Authenticate(string username, string password)
        {
            var user = _context.Korisnik.Where(x => x.KorisnickoIme == username || x.Email == username).Include(y => y.Osoba).Select(y => new Korisnik()
            {
                KorisnikId          = y.KorisnikId,
                KorisnickoIme       = y.KorisnickoIme,
                Email               = y.Email,
                Slika               = y.Slika,
                Osoba               = y.Osoba,
                KorisnickaSifraHash = y.KorisnickaSifraHash,
                Salt = y.Salt
            }).FirstOrDefault();

            user.KorisnikRola = _context.KorisnikRola.Where(x => x.KorisnikId == user.KorisnikId).Include(x => x.Rola).ToList();
            Osoba o         = _context.Osoba.Where(x => x.KorisnikId == user.KorisnikId).FirstOrDefault();
            var   _korisnik = new Model.Korisnik()
            {
                Email         = user.Email,
                Ime           = o.Ime,
                Prezime       = o.Prezime,
                KorisnickoIme = user.KorisnickoIme,
                Slika         = user.Slika
            };

            if (user.KorisnikRola.Select(x => x.Rola.Naziv).Contains(Role.Uposlenik) || user.KorisnikRola.Select(x => x.Rola.Naziv).Contains(Role.Admin))
            {
                _korisnik.BibliotekaNaziv = _context.Uposlenik.Where(x => x.OsobaId == o.OsobaId).Include(x => x.Biblioteka).Select(y => y.Biblioteka.Naziv).FirstOrDefault();
            }
            else if (user.KorisnikRola.Select(x => x.Rola.Naziv).Contains(Role.Korisnik))
            {
                _korisnik.BibliotekaNaziv = _context.Clan.Where(x => x.OsobaId == o.OsobaId).Include(x => x.Biblioteka).Select(y => y.Biblioteka.Naziv).FirstOrDefault();
            }
            else
            {
                _korisnik.BibliotekaNaziv = "eBiblioteka";
            }

            if (user != null)
            {
                var newHash = GenerateHash(user.Salt, password);
                if (newHash == user.KorisnickaSifraHash)
                {
                    // authentication successful so generate jwt token
                    var jwt = generateJwt(user);
                    _korisnik.Token = jwt;
                    // remove password before returning
                    user.KorisnickaSifraHash = null;
                    return(_korisnik);
                }
            }



            return(null);
        }
        private async void btnSpremi_Click(object sender, EventArgs e)
        {
            if (this.ValidateChildren())
            {
                var roleList = clbUloge.CheckedItems.Cast <Model.Uloge>().Select(x => x.UlogaId).ToList();

                //var request = new KorisnikInsertRequest()
                //{
                request.Email                = txtEmail.Text;
                request.BrojTelefona         = txtTelefon.Text;
                request.Ime                  = txtIme.Text;
                request.Prezime              = txtPrezime.Text;
                request.KorisnickoIme        = txtKorisnickoIme.Text;
                request.Password             = txtPass.Text;
                request.PasswordConfirmation = txtPassPotvrda.Text;
                request.Uloge                = roleList;
                request.DatumRodjenja        = dtmDatumRodjenja.Value;
                //Slika=profilePicture
                //};

                if (cmbGrad.SelectedIndex == 0)
                {
                    MessageBox.Show("Unesite grad");
                    return;
                }

                var idGrad = cmbGrad.SelectedValue;


                if (int.TryParse(idGrad.ToString(), out int gradId))
                {
                    request.GradID = gradId;
                }


                Model.Korisnik entity = null;
                if (_id.HasValue)
                {
                    entity = await _apiService.Update <Model.Korisnik>(_id.Value, request);
                }
                else
                {
                    entity = await _apiService.Insert <Model.Korisnik>(request);
                }

                if (entity != null)
                {
                    MessageBox.Show("Uspješno izvršeno");
                    this.Close();
                }
            }
        }
        public Model.Korisnik Insert(KorisnikInsertRequest request)
        {
            var entity = _mapper.Map <Database.Korisnik>(request);

            if (request.Password != request.PasswordPotvrda)
            {
                throw new Exception("Passwordi se ne slažu");
            }

            entity.LozinkaSalt = GenerateSalt();
            entity.LozinkaHash = GenerateHash(entity.LozinkaSalt, request.Password);

            _context.Korisnik.Add(entity);
            _context.SaveChanges();

            if (request.Uloge.Count() > 0)
            {
                foreach (var uloga in request.Uloge)
                {
                    Database.KorisnikUloga korisniciUloge = new Database.KorisnikUloga();
                    korisniciUloge.KorisnikId   = entity.KorisnikId;
                    korisniciUloge.UlogaId      = uloga;
                    korisniciUloge.DatumIzmjene = DateTime.Now;
                    _context.KorisnikUloga.Add(korisniciUloge);
                }
            }
            else
            {
                Database.KorisnikUloga korisniciUloge = new Database.KorisnikUloga();
                korisniciUloge.KorisnikId   = entity.KorisnikId;
                korisniciUloge.UlogaId      = request.Uloga;
                korisniciUloge.DatumIzmjene = DateTime.Now;
                _context.KorisnikUloga.Add(korisniciUloge);
            }
            _context.SaveChanges();
            // -------- dodano posebno
            var korisnik = new Model.Korisnik()
            {
                Ime           = entity.Ime,
                Prezime       = entity.Prezime,
                KorisnickoIme = entity.KorisnickoIme,
                Email         = entity.Email,
                Telefon       = entity.Telefon,
                KorisnikId    = entity.KorisnikId
            };

            //-----


            // return _mapper.Map<Model.Korisnici>(entity);
            return(korisnik);
        }
Esempio n. 7
0
        protected override async Task <AuthenticateResult> HandleAuthenticateAsync()
        {
            if (!Request.Headers.ContainsKey("Authorization"))
            {
                return(AuthenticateResult.Fail("Missing Authorization Header"));
            }

            Model.Korisnik user = null;
            try
            {
                var authHeader      = AuthenticationHeaderValue.Parse(Request.Headers["Authorization"]);
                var credentialBytes = Convert.FromBase64String(authHeader.Parameter);
                var credentials     = Encoding.UTF8.GetString(credentialBytes).Split(':');
                var username        = credentials[0];
                var password        = credentials[1];
                user = _userService.Authenticate(username, password);
            }
            catch
            {
                return(AuthenticateResult.Fail("Invalid Authorization Header"));
            }

            if (user == null)
            {
                return(AuthenticateResult.Fail("Invalid Username or Password"));
            }

            var claims = new List <Claim> {
                new Claim(ClaimTypes.NameIdentifier, user.KorisnickoIme),
                new Claim(ClaimTypes.Name, user.Ime),
            };

            if (user.KorisnikUloge == null)
            {
                throw new UserException("Greska u ucitavanju uloga");
            }
            else
            {
                foreach (var role in user.KorisnikUloge)
                {
                    claims.Add(new Claim(ClaimTypes.Role, role.Uloga.Naziv));
                }
            }

            var identity  = new ClaimsIdentity(claims, Scheme.Name);
            var principal = new ClaimsPrincipal(identity);
            var ticket    = new AuthenticationTicket(principal, Scheme.Name);

            return(AuthenticateResult.Success(ticket));
        }
Esempio n. 8
0
        private async void buttonLogin_Click(object sender, EventArgs e)
        {
            if (ValidateChildren())
            {
                try
                {
                    APIService.Username = textBoxUsername.Text;
                    APIService.Password = textBoxLozinka.Text;
                    var korisnik = await _service.Get <List <Model.Korisnik> >(new KorisniciSearchRequest
                    {
                        Username = APIService.Username
                    });

                    Model.Korisnik       provjera = korisnik[0];
                    List <KorisnikUloga> uloge    = provjera.KorisnikUloge.ToList();
                    bool nadjen = false;
                    foreach (var uloga in uloge)
                    {
                        if (uloga.Uloga.Naziv == "Administrator")
                        {
                            nadjen = true;
                        }
                    }
                    if (!nadjen)
                    {
                        MessageBox.Show("Neka se na admin panel loguje samo admninistrator");
                        return;
                    }
                    FormIndex frm = new FormIndex();
                    Dispose(false);
                    frm.Show();
                    MessageBox.Show("Uspjesan login!");
                }
                catch (FlurlHttpException er)
                {
                    if (er.Call.Response.StatusCode == System.Net.HttpStatusCode.Unauthorized)
                    {
                        MessageBox.Show("Pogrešan password ili lozinka!", "Authentication", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                    else
                    {
                        MessageBox.Show("Server error!", "Authentication", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Error", "Info", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }
        private async void FormKorisnikDetalji_Load(object sender, EventArgs e)
        {
            try
            {
                if (_selected_id.HasValue)
                {
                    korisnik = await _service.GetById <Model.Korisnik>(_selected_id);

                    if (korisnik.KorisnikId != 0)
                    {
                        textBoxIme.Text         = korisnik.Ime;
                        textBoxPrezime.Text     = korisnik.Prezime;
                        textBoxEmail.Text       = korisnik.Email;
                        textBoxTelefon.Text     = korisnik.Telefon;
                        textBoxUsername.Text    = korisnik.KorisnickoIme;
                        textBoxUsername.Enabled = false;
                        List <int> indexi = new List <int>();
                        foreach (Model.KorisnikUloga uloga in korisnik.KorisnikUloge)
                        {
                            foreach (Model.Uloga item in clbRole.Items)
                            {
                                if (item.UlogaId == uloga.UlogaId)
                                {
                                    indexi.Add(clbRole.Items.IndexOf(item));
                                }
                            }
                        }

                        foreach (int index in indexi)
                        {
                            clbRole.SetItemChecked(index, true);
                        }
                        clbRole.Enabled = false;
                        //load slika

                        if (korisnik.KorisnikSlika != null)
                        {
                            Image image = ByteToImage(korisnik.KorisnikSlika.ProfilnaSlika);
                            pictureBox.Image = image;
                        }
                    }
                }
            }
            catch
            {
                MessageBox.Show("Problem prilikom učitavanja korisnika");
                Dispose(false);
            }
        }
Esempio n. 10
0
        private async void FormUrediPonudu_Load(object sender, EventArgs e)
        {
            ponuda = await _servicePonude.GetById <Model.Ponuda>(id_ponude);

            ekspert = await _serviceEksperti.GetById <Model.Ekspert>(ponuda.EkspertId);

            projekt = await _serviceProjekti.GetById <Model.Projekt>(ponuda.ProjektId);

            korisnik = await _serviceKorisnici.GetById <Model.Korisnik>(ekspert.KorisnikUloga.KorisnikId);

            textBoxEkspert.Text = korisnik.KorisnickoIme;
            textBoxProjekt.Text = projekt.Naziv;

            textBoxOpis.Text = ponuda.OpisPonude;

            numericUpDownCijena.Value = int.Parse(ponuda.Cijena.ToString());
        }
Esempio n. 11
0
        protected override async Task <AuthenticateResult> HandleAuthenticateAsync()
        {
            if (!Request.Headers.ContainsKey("Authorization"))
            {
                return(AuthenticateResult.Fail("Missing Authorization Header"));
            }

            Model.Korisnik CurrentUser = null;

            try
            {
                var authHeader      = AuthenticationHeaderValue.Parse(Request.Headers["Authorization"]);
                var credentialBytes = Convert.FromBase64String(authHeader.Parameter);
                var credentials     = Encoding.UTF8.GetString(credentialBytes).Split(':');
                var username        = credentials[0];
                var password        = credentials[1];
                CurrentUser = _korisnikService.Authenticate(username, password);
            }
            catch
            {
                return(AuthenticateResult.Fail("Invalid Authorization Header"));
            }

            if (CurrentUser == null)
            {
                return(AuthenticateResult.Fail("Invalid Username or Password"));
            }

            _korisnikService.SetCurrentUser(CurrentUser);

            var claims = new List <Claim> {
                new Claim(ClaimTypes.NameIdentifier, CurrentUser.KorisnickoIme),
                new Claim(ClaimTypes.Name, CurrentUser.Ime + " " + CurrentUser.Prezime),
            };

            claims.Add(new Claim(ClaimTypes.Role, CurrentUser.Uloga));

            var identity  = new ClaimsIdentity(claims, Scheme.Name);
            var principal = new ClaimsPrincipal(identity);
            var ticket    = new AuthenticationTicket(principal, Scheme.Name);

            return(AuthenticateResult.Success(ticket));
        }
Esempio n. 12
0
        public static async Task <Model.Korisnik> GetCurrentUser()
        {
            if (CurrentUser != null)
            {
                return(CurrentUser);
            }

            if (!string.IsNullOrEmpty(APIService.Username) && !string.IsNullOrEmpty(APIService.Password))
            {
                APIService _service = new APIService("Users");
                CurrentUser = await _service.Get <Model.Korisnik>(null, "MyProfile");

                if (CurrentUser != null)
                {
                    return(CurrentUser);
                }
            }

            await Application.Current.MainPage.DisplayAlert("Failure", "Failed to retrieve user profile.", "OK");

            return(default);
        private async void btnSpremi_Click(object sender, EventArgs e)
        {
            Model.Korisnik         korisnik = null;
            KorisniciSearchRequest korisniciSearchRequest = new KorisniciSearchRequest
            {
                BrojKartice = txtBrojKartice.Text
            };
            List <Model.Korisnik> korisnici = await _korisnikService.Get <List <Model.Korisnik> >(korisniciSearchRequest);

            if (korisnici.Count == 1)
            {
                korisnik = korisnici[0];
            }
            if (korisnik == null)
            {
                MessageBox.Show("Korisnik sa unesenom karticom ne postoji!");
                return;
            }
            ClanarinaSearchRequest clanarinaSearchRequest = new ClanarinaSearchRequest
            {
                KorisnikId = korisnik.Id
            };

            Model.PrisutnostClana        prisutnostClana;
            PrisutnostClanaSearchRequest request = new PrisutnostClanaSearchRequest
            {
                BrojKartice = txtBrojKartice.Text
            };
            List <Model.PrisutnostClana> result = await _service.Get <List <Model.PrisutnostClana> >(request);

            if (result.Count == 0)
            {
                PrisutnostClanaInsertRequest insertRequest = new PrisutnostClanaInsertRequest
                {
                    Date           = DateTime.Today,
                    KorisnikId     = korisnik.Id,
                    VrijemeDolaska = DateTime.Now.TimeOfDay
                };

                prisutnostClana = await _service.Insert <Model.PrisutnostClana>(insertRequest);

                if (prisutnostClana != null)
                {
                    MessageBox.Show("Uspjesno dodan clan na listu prisutnih!");
                }
            }
            else
            {
                prisutnostClana = new Model.PrisutnostClana
                {
                    Id             = result[0].Id,
                    KorisnikId     = result[0].KorisnikId,
                    VrijemeDolaska = result[0].VrijemeDolaska,
                    VrijemeOdlaska = DateTime.Now.TimeOfDay
                };
                Model.PrisutnostClana entity;
                entity = await _service.Update <Model.PrisutnostClana>(result[0].Id, prisutnostClana);

                if (entity != null)
                {
                    MessageBox.Show("Uspjesno ste uklonili clana sa liste prisutnih!");
                }
            }
            await LoadPrisutne();
        }
Esempio n. 14
0
        private async void btnSacuvaj_Click(object sender, EventArgs e)
        {
            if (this.ValidateChildren())
            {
                var roleList = clbRole.CheckedItems.Cast <Model.Uloga>().Select(x => x.UlogaId).ToList();

                var request = new KorisnikInsertRequest
                {
                    Email           = txtEmail.Text,
                    Ime             = txtIme.Text,
                    KorisnickoIme   = txtKorisnickoIme.Text,
                    Password        = txtPassword.Text,
                    PasswordPotvrda = txtPassPotvrda.Text,
                    Prezime         = txtPrezime.Text,
                    Telefon         = txtTelefon.Text,
                    Uloge           = roleList
                };

                Model.Korisnik entity = null;
                if (!_id.HasValue)
                {
                    try
                    {
                        await _service.Insert <Model.Korisnik>(request);

                        MessageBox.Show("Uspješno sačuvani podaci");
                        this.Close();
                    }

                    catch (Exception)
                    {
                        DialogResult r = MessageBox.Show("Nemate pravo pristupa");
                        if (r == DialogResult.OK)
                        {
                            this.Close();
                        }
                    }
                }
                else
                {
                    try
                    {
                        await _service.Update <Model.Korisnik>(_id.Value, request);

                        MessageBox.Show("Uspješno sačuvani podaci");
                        this.Close();
                    }

                    catch (Exception)
                    {
                        DialogResult r = MessageBox.Show("Nemate pravo pristupa");
                        if (r == DialogResult.OK)
                        {
                            this.Close();
                        }
                    }
                }

                if (entity != null)
                {
                    MessageBox.Show("Uspješno izvršeno");
                }
            }
            else
            {
                MessageBox.Show("Operacija nije uspjela");
                this.Close();
            }
        }
Esempio n. 15
0
        public async void ExecuteAsync()
        {
            Model.Korisnik result = null;
            try
            {
                result = await _auth.Auth <Model.Korisnik>(Email, Password);
            }
            catch (Exception e)
            {
                IsDialogOpen = true;
                DialogText   = e.Message;
            }
            if (result != null)
            {
                if (!result.Token.Equals(""))
                {
                    APIService.Session.JWT = result.Token;

                    var jwt       = APIService.Session.JWT;
                    var handler   = new JwtSecurityTokenHandler();
                    var jsonToken = handler.ReadJwtToken(jwt);
                    if (jsonToken.ValidTo.ToLocalTime().CompareTo(DateTime.Now.ToLocalTime()) < 1)
                    {
                        APIService.Session.JWT  = "";
                        APIService.Session.Role = null;
                        return;
                    }

                    APIService.Session.BibliotekaNaziv = result.BibliotekaNaziv;
                    APIService.Session.ImePrezime      = result.Ime + " " + result.Prezime;
                    APIService.Session.Slika           = result.Slika;

                    APIService.Session.Role = new List <string>();
                    foreach (var claim in jsonToken.Claims)
                    {
                        if (claim.Type.Equals("role"))
                        {
                            APIService.Session.Role.Add(claim.Value);
                        }
                    }
                    if (APIService.Session.Role.Contains("Korisnik"))
                    {
                        IsDialogOpen = true;
                        DialogText   = "Niste authentificirani";
                        return;
                    }

                    if (RememberMe)
                    {
                        Properties.Settings.Default.Element2   = EncryptionHelper.Encrypt(Password);
                        Properties.Settings.Default.RememberMe = true;
                        Properties.Settings.Default.Element1   = EncryptionHelper.Encrypt(Email);
                        Properties.Settings.Default.Save();
                    }

                    var mv = new MainWindow();
                    mv.Show();

                    Application.Current.MainWindow.Close();
                }
            }
        }
Esempio n. 16
0
 public void SetCurrentUser(Model.Korisnik user)
 {
     _currentUser = user;
 }
Esempio n. 17
0
        async Task Login()
        {
            IsBusy = true;
            APIService.Username = KorisnickoIme;
            APIService.Password = Lozinka;

            Model.Korisnik k        = new Model.Korisnik();
            var            username = APIService.Username;

            try
            {
                await _service.Get <dynamic>(null);

                if (string.IsNullOrWhiteSpace(this._korisnickoIme))
                {
                    await Application.Current.MainPage.DisplayAlert("Greška", "Morate upisati korisničko ime!", "OK");
                }
                if (string.IsNullOrWhiteSpace(this._lozinka))
                {
                    await Application.Current.MainPage.DisplayAlert("Greška", "Morate upisati lozinku!", "OK");
                }
                Pacijent        pacijent = null;
                List <Pacijent> lista    = await _servicePacijent.Get <List <Pacijent> >(null);

                foreach (var item in lista)
                {
                    if (item.KorisnickoIme == KorisnickoIme)
                    {
                        pacijent = item;
                        break;
                    }
                }

                if (pacijent != null)
                {
                    var newHash = GenerateHash(pacijent.PasswordSalt, _lozinka);
                    if (newHash == pacijent.PasswordHash)
                    {
                        Application.Current.MainPage = new MainPage();
                    }
                    else
                    {
                        await Application.Current.MainPage.DisplayAlert("Greška", "Niste autentificirani", "OK");
                    }
                }
                else
                {
                    Korisnik        korisnik       = null;
                    List <Korisnik> listaKorisnika = await _service.Get <List <Korisnik> >(null);

                    foreach (var item in listaKorisnika)
                    {
                        if (item.KorisnickoIme == KorisnickoIme)
                        {
                            korisnik = item;
                            break;
                        }
                    }
                    if (korisnik != null)
                    {
                        var newHash = GenerateHash(korisnik.PasswordSalt, _lozinka);
                        if (newHash == korisnik.PasswordHash)
                        {
                            Application.Current.MainPage = new MainPageAdmin();
                        }
                        else
                        {
                            await Application.Current.MainPage.DisplayAlert("Greška", "Niste autentificirani", "OK");
                        }
                    }
                }
            }
            catch (Exception ex)
            {
            }
            finally
            {
                IsBusy = false;
            }
        }
Esempio n. 18
0
        public Model.Korisnik Insert(KorisnikInsertRequest request)
        {
            var getAll = _context.Korisnici.ToList();

            foreach (var k in getAll)
            {
                if (k.KorisnickoIme == request.KorisnickoIme)
                {
                    throw new UserException("Korisničko ime već postoji!");
                }
                if (k.Email == request.Email)
                {
                    throw new UserException("Već postoji profil registrovan na " + request.Email);
                }
            }

            var entity = _mapper.Map <Database.Korisnik>(request);

            if (request.Password != request.PasswordConfirmation)
            {
                throw new UserException("Passwordi se ne slazu");
            }

            entity.LozinkaSalt = GenerateSalt();
            entity.LozinkaHash = GenerateHash(entity.LozinkaSalt, request.Password);
            entity.IsVozac     = false;

            _context.Korisnici.Add(entity);
            _context.SaveChanges();

            if (request.Uloge.Count != 0)
            {
                foreach (var uloga in request.Uloge)
                {
                    entity.KorisniciUloge.Add(new Database.KorisniciUloge
                    {
                        KorisnikId   = entity.KorisnikID,
                        DatumIzmjene = DateTime.Now,
                        UlogaId      = uloga
                    });
                }
            }

            _context.SaveChanges();

            var model = new Model.Korisnik
            {
                KorisnikID    = entity.KorisnikID,
                BrojTelefona  = entity.BrojTelefona,
                DatumRodjenja = entity.DatumRodjenja,
                Email         = entity.Email,
                GradID        = entity.GradID,
                Ime           = entity.Ime,
                IsVozac       = entity.IsVozac,
                KorisnickoIme = entity.KorisnickoIme,
                Prezime       = entity.Prezime,
                Slika         = entity.Slika
            };

            model.KorisniciUloge = new List <Model.KorisniciUloge>();
            foreach (var item in entity.KorisniciUloge)
            {
                model.KorisniciUloge.Add(new Model.KorisniciUloge
                {
                    DatumIzmjene    = item.DatumIzmjene,
                    KorisnikId      = item.KorisnikId,
                    KorisnikUlogaId = item.KorisnikUlogaId,
                    UlogaId         = item.UlogaId
                });
            }

            return(model);
        }