mirror of
https://github.com/LBPUnion/ProjectLighthouse.git
synced 2025-08-01 09:48:37 +00:00
Allow getting user from BaseLayout
This commit is contained in:
parent
e12fa2ea66
commit
12e2fe8626
4 changed files with 19 additions and 12 deletions
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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"));
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue