Esempio n. 1
0
        public IActionResult ProvjeriLozinku(String korisnickoIme, [FromBody] KreirajTokenRequestModel model)
        {
            var valid = korisnikService.ProvjeriLozinku(korisnickoIme, model.Lozinka);

            if (!valid.IsOk)
            {
                return(Convert(valid));
            }
            var result = ulogaService.VratiSveZaKorisnickoIme(korisnickoIme);

            return(Convert(result));
        }
Esempio n. 2
0
        public ServiceResult <TokenModel> KreirajToken(String korisnickoIme, int ulogaId, String ip, String klijent, Core.Constants.TokenTip Tip = Core.Constants.TokenTip.Sesija)
        {
            var vlasnik = korisnikService.VratiKorisnikaPoKorisnickomImenu(korisnickoIme);

            if (!vlasnik.IsOk)
            {
                return(MissingEntity("Vlasnik"));
            }

            if (vlasnik.Value.Onemogucen)
            {
                return(ValidationError("Vlasnik tokena je onemogucen."));
            }

            // koristimo sistemske postavke za trajanje sesije
            var postavke = postavkeService.VratiPostavke();

            if (!postavke.IsOk)
            {
                return(MissingEntity("Postavke"));
            }

            var uloge = ulogaService.VratiSveZaKorisnickoIme(korisnickoIme);

            if (!uloge.IsOk)
            {
                return(Error("Nije moguće dobaviti uloge korisnika"));
            }

            //todo ovo provjeriti da li je ok
            if (Tip == TokenTip.Temp)
            {
                ulogaId = uloge.Value.Items.First().Id;
            }

            if (uloge.Value.Items.All(a => a.Id != ulogaId))
            {
                return(Error("Korisnik nije u datoj ulozi."));
            }

            var datumIsteka = DateTime.Now.AddDays(postavke.Value.TrajanjeSesije);

            // kreiraj entitet
            var token = new Token()
            {
                Id = Guid.NewGuid(),
                VlasnikKorisnickoIme  = korisnickoIme,
                DatumKreiranja        = DateTime.Now,
                DatumIsteka           = datumIsteka,
                DatumPosljednjeAkcije = DateTime.Now,
                UlogaId = ulogaId,
                Tip     = Tip
            };

            // spasi token
            context.Tokeni.Add(token);
            SaveChanges(context);

            // uradi validaciju i vrati rezultat
            var result = ValidirajToken(token.Id, ip, klijent);

            if (!result.IsOk)
            {
                return(result);
            }

            return(result);
        }