diff --git a/ProjectLighthouse/Database.cs b/ProjectLighthouse/Database.cs index 5f9df956..2bf194d3 100644 --- a/ProjectLighthouse/Database.cs +++ b/ProjectLighthouse/Database.cs @@ -130,26 +130,26 @@ namespace LBPUnion.ProjectLighthouse #region Web Token Shenanigans - public async Task UserFromLighthouseToken(string lighthouseToken) + public User? UserFromLighthouseToken(string lighthouseToken) { - WebToken? token = await this.WebTokens.FirstOrDefaultAsync(t => t.UserToken == lighthouseToken); + WebToken? token = this.WebTokens.FirstOrDefault(t => t.UserToken == lighthouseToken); if (token == null) return null; - return await this.Users.Include(u => u.Location).FirstOrDefaultAsync(u => u.UserId == token.UserId); + return this.Users.Include(u => u.Location).FirstOrDefault(u => u.UserId == token.UserId); } - public async Task UserFromWebRequest(HttpRequest request) + public User? UserFromWebRequest(HttpRequest request) { if (!request.Cookies.TryGetValue("LighthouseToken", out string? lighthouseToken) || lighthouseToken == null) return null; - return await this.UserFromLighthouseToken(lighthouseToken); + return this.UserFromLighthouseToken(lighthouseToken); } - public async Task WebTokenFromRequest(HttpRequest request) + public WebToken? WebTokenFromRequest(HttpRequest request) { if (!request.Cookies.TryGetValue("LighthouseToken", out string? lighthouseToken) || lighthouseToken == null) return null; - return await this.WebTokens.FirstOrDefaultAsync(t => t.UserToken == lighthouseToken); + return this.WebTokens.FirstOrDefault(t => t.UserToken == lighthouseToken); } #endregion diff --git a/ProjectLighthouse/Pages/ExternalAuth/LogoutPage.cshtml.cs b/ProjectLighthouse/Pages/ExternalAuth/LogoutPage.cshtml.cs index 7542466c..374bb057 100644 --- a/ProjectLighthouse/Pages/ExternalAuth/LogoutPage.cshtml.cs +++ b/ProjectLighthouse/Pages/ExternalAuth/LogoutPage.cshtml.cs @@ -12,7 +12,7 @@ namespace LBPUnion.ProjectLighthouse.Pages.ExternalAuth {} public async Task OnGet() { - WebToken? token = await this.Database.WebTokenFromRequest(this.Request); + WebToken? token = this.Database.WebTokenFromRequest(this.Request); if (token == null) return this.BadRequest(); this.Database.WebTokens.Remove(token); diff --git a/ProjectLighthouse/Pages/Layouts/BaseLayout.cshtml b/ProjectLighthouse/Pages/Layouts/BaseLayout.cshtml index 1cbf2943..363ef3f5 100644 --- a/ProjectLighthouse/Pages/Layouts/BaseLayout.cshtml +++ b/ProjectLighthouse/Pages/Layouts/BaseLayout.cshtml @@ -3,9 +3,7 @@ @model LBPUnion.ProjectLighthouse.Pages.Layouts.BaseLayout @{ - Model!.User = await Model.Database.UserFromWebRequest(Model.Request); - - if (Model.User == null) + if (Model!.User == null) { Model.NavigationItems.Add(new PageNavigationItem("Log in", "/login", "user alternate")); Model.NavigationItems.Add(new PageNavigationItem("Register", "/register", "user alternate edit")); diff --git a/ProjectLighthouse/Pages/Layouts/BaseLayout.cshtml.cs b/ProjectLighthouse/Pages/Layouts/BaseLayout.cshtml.cs index 572b707d..41c6daf3 100644 --- a/ProjectLighthouse/Pages/Layouts/BaseLayout.cshtml.cs +++ b/ProjectLighthouse/Pages/Layouts/BaseLayout.cshtml.cs @@ -9,7 +9,16 @@ namespace LBPUnion.ProjectLighthouse.Pages.Layouts { public readonly Database Database; - public new User? User { get; set; } + private User? user; + + public new User? User { + get { + if (this.user != null) return this.user; + + return user = Database.UserFromWebRequest(this.Request); + } + set => this.user = value; + } public BaseLayout(Database database) {