mirror of
https://github.com/LBPUnion/ProjectLighthouse.git
synced 2025-07-28 16:08:38 +00:00
Add command to remove user's 2fa configuration. (#1094)
* Add command to remove user's 2fa configuration. * Use collection expression, because I'm metal like that
This commit is contained in:
parent
92ce4c5af5
commit
509240db39
1 changed files with 47 additions and 0 deletions
|
@ -0,0 +1,47 @@
|
||||||
|
#nullable enable
|
||||||
|
using System;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using LBPUnion.ProjectLighthouse.Database;
|
||||||
|
using LBPUnion.ProjectLighthouse.Logging;
|
||||||
|
using LBPUnion.ProjectLighthouse.Types.Entities.Profile;
|
||||||
|
using LBPUnion.ProjectLighthouse.Types.Logging;
|
||||||
|
using LBPUnion.ProjectLighthouse.Types.Maintenance;
|
||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
|
|
||||||
|
namespace LBPUnion.ProjectLighthouse.Administration.Maintenance.Commands;
|
||||||
|
|
||||||
|
public class RemoveTwoFactorCommand : ICommand
|
||||||
|
{
|
||||||
|
public string Name() => "Remove Two Factor Authentication";
|
||||||
|
public string[] Aliases()
|
||||||
|
=>
|
||||||
|
[
|
||||||
|
"removeTwoFactor", "rm2fa",
|
||||||
|
];
|
||||||
|
public string Arguments() => "<username/userId>";
|
||||||
|
public int RequiredArgs() => 1;
|
||||||
|
|
||||||
|
public async Task Run(IServiceProvider provider, string[] args, Logger logger)
|
||||||
|
{
|
||||||
|
DatabaseContext database = provider.GetRequiredService<DatabaseContext>();
|
||||||
|
UserEntity? user = await database.Users.FirstOrDefaultAsync(u => u.Username == args[0]);
|
||||||
|
if (user == null)
|
||||||
|
{
|
||||||
|
_ = int.TryParse(args[0], out int userId);
|
||||||
|
user = await database.Users.FirstOrDefaultAsync(u => u.UserId == userId);
|
||||||
|
if (user == null)
|
||||||
|
{
|
||||||
|
logger.LogError($"Could not find user by parameter '{args[0]}'", LogArea.Command);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
user.TwoFactorSecret = "";
|
||||||
|
user.TwoFactorBackup = "";
|
||||||
|
|
||||||
|
await database.SaveChangesAsync();
|
||||||
|
|
||||||
|
logger.LogSuccess($"The two factor authentication for user {user.Username} (id: {user.UserId}) has been removed.", LogArea.Command);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue