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.
This commit is contained in:
parent
92ce4c5af5
commit
0ba5b5ee0c
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()
|
||||
=> new[]
|
||||
{
|
||||
"remove2fa", "rm2fa",
|
||||
};
|
||||
public string Arguments() => "<username/userId>";
|
||||
public int RequiredArgs() => 2;
|
||||
|
||||
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