Allow getting user from BaseLayout

This commit is contained in:
jvyden 2021-11-21 19:12:31 -05:00
commit 12e2fe8626
No known key found for this signature in database
GPG key ID: 18BCF2BE0262B278
4 changed files with 19 additions and 12 deletions

View file

@ -130,26 +130,26 @@ namespace LBPUnion.ProjectLighthouse
#region Web Token Shenanigans
public async Task<User?> 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<User?> 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<WebToken?> 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

View file

@ -12,7 +12,7 @@ namespace LBPUnion.ProjectLighthouse.Pages.ExternalAuth
{}
public async Task<IActionResult> 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);

View file

@ -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"));

View file

@ -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)
{