Ban and unban work
This commit is contained in:
@@ -17,6 +17,24 @@ public class UserController : Controller
|
|||||||
LightlessDbContextFactory = lightlessDbContext;
|
LightlessDbContextFactory = lightlessDbContext;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Authorize(Policy = "Internal")]
|
||||||
|
[HttpPost(LightlessAuth.Ban_Uid)]
|
||||||
|
public async Task MarkForBanUid(string uid)
|
||||||
|
{
|
||||||
|
using var dbContext = await LightlessDbContextFactory.CreateDbContextAsync();
|
||||||
|
|
||||||
|
Logger.LogInformation("Banning user with UID {UID}", uid);
|
||||||
|
|
||||||
|
//Mark User as banned, and not marked for ban
|
||||||
|
var auth = await dbContext.Auth.FirstOrDefaultAsync(f => f.UserUID == uid);
|
||||||
|
if (auth != null)
|
||||||
|
{
|
||||||
|
auth.MarkForBan = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
await dbContext.SaveChangesAsync();
|
||||||
|
}
|
||||||
|
|
||||||
[Authorize(Policy = "Internal")]
|
[Authorize(Policy = "Internal")]
|
||||||
[HttpPost(LightlessAuth.User_Unban_Uid)]
|
[HttpPost(LightlessAuth.User_Unban_Uid)]
|
||||||
public async Task UnBanUserByUid(string uid)
|
public async Task UnBanUserByUid(string uid)
|
||||||
|
|||||||
@@ -224,6 +224,48 @@ public class LightlessModule : InteractionModuleBase
|
|||||||
await RespondAsync(embeds: new Embed[] { eb.Build() }, ephemeral: true).ConfigureAwait(false);
|
await RespondAsync(embeds: new Embed[] { eb.Build() }, ephemeral: true).ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[SlashCommand("markUidforBan", "ADMIN ONLY: ban a user by their uid")]
|
||||||
|
public async Task MarkUidForBan([Summary("uid", "uid to ban")] string uid)
|
||||||
|
{
|
||||||
|
_logger.LogInformation("SlashCommand:{userId}:{Method}:{params}",
|
||||||
|
Context.Interaction.User.Id, nameof(MarkUidForBan),
|
||||||
|
string.Join(",", new[] { $"{nameof(uid)}:{uid}" }));
|
||||||
|
try
|
||||||
|
{
|
||||||
|
using HttpClient c = new HttpClient();
|
||||||
|
c.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", _serverTokenGenerator.Token);
|
||||||
|
await c.PostAsJsonAsync(new Uri(_lightlessServicesConfiguration.GetValue<Uri>
|
||||||
|
(nameof(ServicesConfiguration.MainServerAddress)), "/user/ban"), new { uid })
|
||||||
|
.ConfigureAwait(false);
|
||||||
|
var discordChannelForMessages = _lightlessServicesConfiguration.GetValueOrDefault<ulong?>(nameof(ServicesConfiguration.DiscordChannelForMessages), null);
|
||||||
|
if (discordChannelForMessages != null)
|
||||||
|
{
|
||||||
|
var discordChannel = await Context.Guild.GetChannelAsync(discordChannelForMessages.Value).ConfigureAwait(false) as IMessageChannel;
|
||||||
|
if (discordChannel != null)
|
||||||
|
{
|
||||||
|
var embedColor = Color.Blue;
|
||||||
|
|
||||||
|
EmbedBuilder eb = new();
|
||||||
|
eb.WithTitle("Ban Alert!");
|
||||||
|
eb.WithColor(embedColor);
|
||||||
|
eb.WithDescription(uid + " has been marked for ban");
|
||||||
|
|
||||||
|
await discordChannel.SendMessageAsync(embed: eb.Build()).ConfigureAwait(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
await RespondAsync("Message sent", ephemeral: true).ConfigureAwait(false);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
EmbedBuilder eb = new();
|
||||||
|
eb.WithTitle("An error occured");
|
||||||
|
eb.WithDescription("Please report this: " + Environment.NewLine + ex.Message + Environment.NewLine + ex.StackTrace + Environment.NewLine);
|
||||||
|
await RespondAsync(embeds: new Embed[] { eb.Build() }, ephemeral: true).ConfigureAwait(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public async Task<Embed> HandleUserAdd(string desiredUid, ulong discordUserId)
|
public async Task<Embed> HandleUserAdd(string desiredUid, ulong discordUserId)
|
||||||
{
|
{
|
||||||
var embed = new EmbedBuilder();
|
var embed = new EmbedBuilder();
|
||||||
|
|||||||
Reference in New Issue
Block a user