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); }
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); }