Пример #1
0
        public static Kayttaja HaeKirjautuminen(string token = null)
        {
            FoorumiModel db = new FoorumiModel();

            Kayttaja kayttaja = new Kayttaja()
            {
                jwt = null, nimimerkki = "Vieras", kayttajataso_id = VierasKayttajaTaso, Kayttajatasot = db.Kayttajatasot.Find(VierasKayttajaTaso)
            };                                                                                                                                                                        // Alustetaan käyttäjä vieraana


            if (token == null) // Ei tokenia, ei kirjautumista
            {
                return(kayttaja);
            }

            if (!ValidoiJwt(token)) // Epäkelpo tokeni ei käy
            {
                return(kayttaja);
            }

            Dictionary <string, string> payload = JwtHaePayload(token, true);

            string sessioAvain;

            try
            {
                sessioAvain = payload["ses"];
            }
            catch (Exception)
            {
                return(kayttaja);
            }


            var sessiollaHaku = db.Kayttajat.Where(k => k.Sessio == sessioAvain); // Etsitään sessioavaimella käyttäjää

            if (sessiollaHaku.Count() != 1)                                       // Jos lkm muu kuin 1 niin ei käy
            {
                return(kayttaja);
            }

            kayttaja = sessiollaHaku.Single();   // Liitetään käyttäjä

            kayttaja.aktiivisuus = DateTime.Now; // Päivitetään aktiivisuus
            db.SaveChanges();

            kayttaja.jwt = GeneroiJwtString(kayttaja.Sessio); // Generoidaan uusi token


            return(kayttaja);
        }
Пример #2
0
        public static List <Alue> HaeKayttajanAlueet(Kayttaja k)
        {
            List <Alue>  alueet = new List <Alue>();
            FoorumiModel db     = new FoorumiModel();

            foreach (Alue a in db.Alueet)
            {
                if (a.NakeekoKayttaja(k) || k.kayttajataso_id == 1)
                {
                    alueet.Add(a);
                }
            }
            return(alueet);
        }