public IActionResult PrivacyPolicy() { string authSessionCookie = Request.Cookies["authSession"]; bool userLoggedIn = FirebaseAuthHelper.IsUserLoggedIn(authSessionCookie, true); ViewData["userLoggedIn"] = userLoggedIn; return(View()); }
public IActionResult Register() { string authSessionCookie = Request.Cookies["authSession"]; switch (FirebaseAuthHelper.IsUserLoggedIn(authSessionCookie, true)) { case true: return(Redirect("/")); case false: return(View()); } }
public IActionResult CreateACountryPOST() { string authSessionCookie = Request.Cookies["authSession"]; bool userLoggedIn = FirebaseAuthHelper.IsUserLoggedIn(authSessionCookie); if (userLoggedIn) { FirebaseToken firebaseToken = FirebaseAuth.DefaultInstance.VerifySessionCookieAsync(authSessionCookie).Result; string firebaseUid = firebaseToken.Uid; using (DatabaseContext database = new DatabaseContext()) { User user = database.Users.Single(u => u.FirebaseUid == firebaseUid); if (user.CountryName == null) { Country country = new Country { CountryName = Request.Form["country-name"], CapitalName = Request.Form["capital-name"], FlagId = CountryGenerationHelper.FlagNameToId(Request.Form["flag-name"]) }; if (database.Countries.Any(c => c.CountryName == country.CountryName)) { ViewData["errorMessage"] = "There is another country with that name, and we don't allow duplicate country names. Sorry!"; return(View("../Error/TextError")); } database.Countries.Add(country); user.CountryName = country.CountryName; user.Ministry = MinistryHelper.MinistryCode.PrimeMinister; database.SaveChanges(); return(Redirect("/")); } else { ViewData["errorMessage"] = "You are already a minister in another country."; return(View("../Error/TextError")); } } } else { ViewData["errorMessage"] = "You are not logged in."; return(View("../Error/TextError")); } }
public IActionResult CheckVerificationEmail() { string authSessionCookie = Request.Cookies["authSession"]; if (FirebaseAuthHelper.IsUserLoggedIn(authSessionCookie)) { return(Redirect("/")); } bool userLoggedIn = FirebaseAuthHelper.IsUserLoggedIn(authSessionCookie, true); ViewData["userLoggedIn"] = userLoggedIn; return(View()); }
public IActionResult LogIn(string redirect = "/") { string authSessionCookie = Request.Cookies["authSession"]; switch (FirebaseAuthHelper.IsUserLoggedIn(authSessionCookie)) { case true: return(Redirect(redirect)); case false: if (FirebaseAuthHelper.IsUserLoggedIn(authSessionCookie, true)) { return(Redirect("/Auth/CheckVerificationEmail")); } ViewData["redirectPath"] = redirect; return(View()); } }
public IActionResult Index() { string authSessionCookie = Request.Cookies["authSession"]; bool userLoggedIn = FirebaseAuthHelper.IsUserLoggedIn(authSessionCookie); if (userLoggedIn) { FirebaseToken firebaseToken = FirebaseAuth.DefaultInstance.VerifySessionCookieAsync(authSessionCookie).Result; return(Redirect("/Game/Index")); } else { if (FirebaseAuthHelper.IsUserLoggedIn(authSessionCookie, true)) { return(Redirect("/Auth/CheckVerificationEmail")); } return(View()); } }
public override void OnActionExecuting(ActionExecutingContext context) { string authSessionCookie = context.HttpContext.Request.Cookies["authSession"]; bool userLoggedInAtAll = FirebaseAuthHelper.IsUserLoggedIn(authSessionCookie); if (!userLoggedInAtAll) { Uri redirectUri = new Uri(context.HttpContext.Request.GetDisplayUrl()); string redirectPath = HttpUtility.UrlEncode(redirectUri.PathAndQuery); context.Result = new RedirectResult($"/Auth/LogIn?redirect={redirectPath}"); return; } FirebaseToken firebaseToken = FirebaseAuth.DefaultInstance.VerifySessionCookieAsync(authSessionCookie).Result; string firebaseUid = firebaseToken.Uid; context.ActionArguments.Add("authSessionCookie", authSessionCookie); using (DatabaseContext database = new DatabaseContext()) { User user = database.Users.Single(u => u.FirebaseUid == firebaseUid); Controller controller = (Controller)context.Controller; controller.ViewData["user"] = user; // TODO: a better admin account if (user.Username == "No country test") { controller.ViewData["country"] = database.Countries.Single(c => c.CountryName == "dummycountry"); controller.ViewData["ministryDashboard"] = MinistryHelper.MinistryCode.None; controller.ViewData["unreadEmails"] = 5; controller.ViewData["unreadNotifications"] = 0; controller.ViewData["noCountry"] = false; base.OnActionExecuting(context); return; } bool userLoggedIn = FirebaseAuthHelper.IsUserLoggedIn(authSessionCookie); if (userLoggedIn) { controller.ViewData["userLoggedIn"] = userLoggedIn; try { Country country = database.Countries.Single(c => c.CountryName == user.CountryName); controller.ViewData["country"] = country; } catch { controller.ViewData["country"] = null; } controller.ViewData["ministryDashboard"] = MinistryHelper.MinistryCode.None; UserEmail[] userEmails = database.UserEmails.Where(ue => ue.ReceivingUsername == user.Username).ToArray(); int unreadEmails = userEmails.Where(ue => !ue.MarkedAsRead).Count(); Notification[] notifications = database.Notifications.Where(n => n.Username == user.Username).ToArray(); int unreadNotifications = notifications.Where(n => !n.MarkedAsRead).Count(); controller.ViewData["unreadEmails"] = unreadEmails; controller.ViewData["unreadNotifications"] = unreadNotifications; controller.ViewData["noCountry"] = user.CountryName == null; base.OnActionExecuting(context); return; } else { context.Result = new RedirectResult("/Auth/CheckVerificationEmail"); return; } } }