Make 2FA redirect highest priority

This commit is contained in:
Slendy 2023-01-02 00:58:57 -06:00
parent fb90371ad1
commit 461de3a299
No known key found for this signature in database
GPG key ID: 7288D68361B91428

View file

@ -11,7 +11,7 @@ public class UserRequiredRedirectMiddleware : MiddlewareDBContext
public UserRequiredRedirectMiddleware(RequestDelegate next) : base(next)
{ }
public override async Task InvokeAsync(HttpContext ctx, Database database)
public override async Task InvokeAsync(HttpContext ctx, Database.Database database)
{
WebToken? token = database.WebTokenFromRequest(ctx.Request);
if (token == null || pathContains(ctx, "/logout"))
@ -34,6 +34,18 @@ public class UserRequiredRedirectMiddleware : MiddlewareDBContext
return;
}
if (!token.Verified && ServerConfiguration.Instance.TwoFactorConfiguration.TwoFactorEnabled)
{
if (!pathContains(ctx, "/2fa"))
{
ctx.Response.Redirect("/2fa");
return;
}
await this.next(ctx);
return;
}
if (user.PasswordResetRequired)
{
if (!pathContains(ctx, "/passwordResetRequired", "/passwordReset"))
@ -77,17 +89,6 @@ public class UserRequiredRedirectMiddleware : MiddlewareDBContext
return;
}
if (!token.Verified && ServerConfiguration.Instance.TwoFactorConfiguration.TwoFactorEnabled)
{
if (!pathContains(ctx, "/2fa"))
{
ctx.Response.Redirect("/2fa");
return;
}
await this.next(ctx);
return;
}
await this.next(ctx);
}