mirror of
https://github.com/space-wizards/space-station-14.git
synced 2026-02-14 19:29:53 +01:00
Ban database refactor (#42495) * Ban DB refactor seems to work at a basic level for PostgreSQL * New ban creation API Supports all the new functionality (multiple players/addresses/hwids/roles/rounds per ban). * Make the migration irreversible * Re-implement ban notifications The server ID check is no longer done as admins may want to place bans spanning multiple rounds irrelevant of the source server. * Fix some split query warnings * Implement migration on SQLite * More comments * Remove required from ban reason SS14.Admin changes would like this * More missing AsSplitQuery() calls * Fix missing ban type filter * Fix old CreateServerBan API with permanent time * Fix department and role ban commands with permanent time * Re-add banhits navigation property Dropped this on accident, SS14.Admin needs it. * More ban API fixes. * Don't fetch ban exemption info for role bans Not relevant, reduces query performance * Regenerate migrations * Fix adminnotes command for players that never connected Would blow up handling null player records. Not a new bug introduced by the refactor, but I ran into it. * Great shame... I accidentally committed submodule update... * Update GDPR scripts * Fix sandbox violation * Fix bans with duplicate info causing DB exceptions Most notably happened with role bans, as multiple departments may include the same role.
37 lines
932 B
C#
37 lines
932 B
C#
using Content.Client.Administration.UI.CustomControls;
|
|
using Content.Shared.Administration.BanList;
|
|
using Robust.Client.AutoGenerated;
|
|
using Robust.Client.UserInterface;
|
|
using Robust.Client.UserInterface.XAML;
|
|
|
|
namespace Content.Client.Administration.UI.BanList.RoleBans;
|
|
|
|
[GenerateTypedNameReferences]
|
|
public sealed partial class RoleBanListControl : Control
|
|
{
|
|
public event Action<RoleBanListLine>? LineIdsClicked;
|
|
|
|
public RoleBanListControl()
|
|
{
|
|
RobustXamlLoader.Load(this);
|
|
}
|
|
|
|
public void SetRoleBans(List<SharedBan> bans)
|
|
{
|
|
for (var i = RoleBans.ChildCount - 1; i >= 1; i--)
|
|
{
|
|
RoleBans.GetChild(i).Dispose();
|
|
}
|
|
|
|
foreach (var ban in bans)
|
|
{
|
|
RoleBans.AddChild(new HSeparator());
|
|
|
|
var line = new RoleBanListLine(ban);
|
|
line.IdsClicked += LineIdsClicked;
|
|
|
|
RoleBans.AddChild(line);
|
|
}
|
|
}
|
|
}
|