mirror of
https://github.com/LBPUnion/ProjectLighthouse.git
synced 2025-08-02 10:08:39 +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
|
#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;
|
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;
|
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;
|
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
|
#endregion
|
||||||
|
|
|
@ -12,7 +12,7 @@ namespace LBPUnion.ProjectLighthouse.Pages.ExternalAuth
|
||||||
{}
|
{}
|
||||||
public async Task<IActionResult> OnGet()
|
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();
|
if (token == null) return this.BadRequest();
|
||||||
|
|
||||||
this.Database.WebTokens.Remove(token);
|
this.Database.WebTokens.Remove(token);
|
||||||
|
|
|
@ -3,9 +3,7 @@
|
||||||
@model LBPUnion.ProjectLighthouse.Pages.Layouts.BaseLayout
|
@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("Log in", "/login", "user alternate"));
|
||||||
Model.NavigationItems.Add(new PageNavigationItem("Register", "/register", "user alternate edit"));
|
Model.NavigationItems.Add(new PageNavigationItem("Register", "/register", "user alternate edit"));
|
||||||
|
|
|
@ -9,7 +9,16 @@ namespace LBPUnion.ProjectLighthouse.Pages.Layouts
|
||||||
{
|
{
|
||||||
public readonly Database Database;
|
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)
|
public BaseLayout(Database database)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue