Log server ID in connection logs table (#21911)
This commit is contained in:
committed by
GitHub
parent
e639006d42
commit
b4f8393f42
1758
Content.Server.Database/Migrations/Postgres/20231126234054_ConnectionLogServer.Designer.cs
generated
Normal file
1758
Content.Server.Database/Migrations/Postgres/20231126234054_ConnectionLogServer.Designer.cs
generated
Normal file
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,55 @@
|
||||
using Microsoft.EntityFrameworkCore.Migrations;
|
||||
|
||||
#nullable disable
|
||||
|
||||
namespace Content.Server.Database.Migrations.Postgres
|
||||
{
|
||||
/// <inheritdoc />
|
||||
public partial class ConnectionLogServer : Migration
|
||||
{
|
||||
/// <inheritdoc />
|
||||
protected override void Up(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.AddColumn<int>(
|
||||
name: "server_id",
|
||||
table: "connection_log",
|
||||
type: "integer",
|
||||
nullable: false,
|
||||
defaultValue: 0);
|
||||
|
||||
// Note: EF Core automatically makes indexes for all FKs.
|
||||
// That's really dumb, and there's no simple way to disable this.
|
||||
// So we drop the index creation command from the migration here,
|
||||
// as we don't want this index:
|
||||
|
||||
// migrationBuilder.CreateIndex(
|
||||
// name: "IX_connection_log_server_id",
|
||||
// table: "connection_log",
|
||||
// column: "server_id");
|
||||
|
||||
migrationBuilder.AddForeignKey(
|
||||
name: "FK_connection_log_server_server_id",
|
||||
table: "connection_log",
|
||||
column: "server_id",
|
||||
principalTable: "server",
|
||||
principalColumn: "server_id",
|
||||
onDelete: ReferentialAction.SetNull);
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
protected override void Down(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.DropForeignKey(
|
||||
name: "FK_connection_log_server_server_id",
|
||||
table: "connection_log");
|
||||
|
||||
// migrationBuilder.DropIndex(
|
||||
// name: "IX_connection_log_server_id",
|
||||
// table: "connection_log");
|
||||
|
||||
migrationBuilder.DropColumn(
|
||||
name: "server_id",
|
||||
table: "connection_log");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -528,6 +528,12 @@ namespace Content.Server.Database.Migrations.Postgres
|
||||
.HasColumnType("bytea")
|
||||
.HasColumnName("hwid");
|
||||
|
||||
b.Property<int>("ServerId")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("integer")
|
||||
.HasDefaultValue(0)
|
||||
.HasColumnName("server_id");
|
||||
|
||||
b.Property<DateTime>("Time")
|
||||
.HasColumnType("timestamp with time zone")
|
||||
.HasColumnName("time");
|
||||
@@ -544,6 +550,9 @@ namespace Content.Server.Database.Migrations.Postgres
|
||||
b.HasKey("Id")
|
||||
.HasName("PK_connection_log");
|
||||
|
||||
b.HasIndex("ServerId")
|
||||
.HasDatabaseName("IX_connection_log_server_id");
|
||||
|
||||
b.HasIndex("UserId");
|
||||
|
||||
b.ToTable("connection_log", null, t =>
|
||||
@@ -1466,6 +1475,18 @@ namespace Content.Server.Database.Migrations.Postgres
|
||||
b.Navigation("Profile");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Content.Server.Database.ConnectionLog", b =>
|
||||
{
|
||||
b.HasOne("Content.Server.Database.Server", "Server")
|
||||
.WithMany("ConnectionLogs")
|
||||
.HasForeignKey("ServerId")
|
||||
.OnDelete(DeleteBehavior.SetNull)
|
||||
.IsRequired()
|
||||
.HasConstraintName("FK_connection_log_server_server_id");
|
||||
|
||||
b.Navigation("Server");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Content.Server.Database.Job", b =>
|
||||
{
|
||||
b.HasOne("Content.Server.Database.Profile", "Profile")
|
||||
@@ -1712,6 +1733,8 @@ namespace Content.Server.Database.Migrations.Postgres
|
||||
|
||||
modelBuilder.Entity("Content.Server.Database.Server", b =>
|
||||
{
|
||||
b.Navigation("ConnectionLogs");
|
||||
|
||||
b.Navigation("Rounds");
|
||||
});
|
||||
|
||||
|
||||
1690
Content.Server.Database/Migrations/Sqlite/20231126234049_ConnectionLogServer.Designer.cs
generated
Normal file
1690
Content.Server.Database/Migrations/Sqlite/20231126234049_ConnectionLogServer.Designer.cs
generated
Normal file
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,55 @@
|
||||
using Microsoft.EntityFrameworkCore.Migrations;
|
||||
|
||||
#nullable disable
|
||||
|
||||
namespace Content.Server.Database.Migrations.Sqlite
|
||||
{
|
||||
/// <inheritdoc />
|
||||
public partial class ConnectionLogServer : Migration
|
||||
{
|
||||
/// <inheritdoc />
|
||||
protected override void Up(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.AddColumn<int>(
|
||||
name: "server_id",
|
||||
table: "connection_log",
|
||||
type: "INTEGER",
|
||||
nullable: false,
|
||||
defaultValue: 0);
|
||||
|
||||
// Note: EF Core automatically makes indexes for all FKs.
|
||||
// That's really dumb, and there's no simple way to disable this.
|
||||
// So we drop the index creation command from the migration here,
|
||||
// as we don't want this index:
|
||||
|
||||
// migrationBuilder.CreateIndex(
|
||||
// name: "IX_connection_log_server_id",
|
||||
// table: "connection_log",
|
||||
// column: "server_id");
|
||||
|
||||
migrationBuilder.AddForeignKey(
|
||||
name: "FK_connection_log_server_server_id",
|
||||
table: "connection_log",
|
||||
column: "server_id",
|
||||
principalTable: "server",
|
||||
principalColumn: "server_id",
|
||||
onDelete: ReferentialAction.SetNull);
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
protected override void Down(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.DropForeignKey(
|
||||
name: "FK_connection_log_server_server_id",
|
||||
table: "connection_log");
|
||||
|
||||
// migrationBuilder.DropIndex(
|
||||
// name: "IX_connection_log_server_id",
|
||||
// table: "connection_log");
|
||||
|
||||
migrationBuilder.DropColumn(
|
||||
name: "server_id",
|
||||
table: "connection_log");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -498,6 +498,12 @@ namespace Content.Server.Database.Migrations.Sqlite
|
||||
.HasColumnType("BLOB")
|
||||
.HasColumnName("hwid");
|
||||
|
||||
b.Property<int>("ServerId")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("INTEGER")
|
||||
.HasDefaultValue(0)
|
||||
.HasColumnName("server_id");
|
||||
|
||||
b.Property<DateTime>("Time")
|
||||
.HasColumnType("TEXT")
|
||||
.HasColumnName("time");
|
||||
@@ -514,6 +520,9 @@ namespace Content.Server.Database.Migrations.Sqlite
|
||||
b.HasKey("Id")
|
||||
.HasName("PK_connection_log");
|
||||
|
||||
b.HasIndex("ServerId")
|
||||
.HasDatabaseName("IX_connection_log_server_id");
|
||||
|
||||
b.HasIndex("UserId");
|
||||
|
||||
b.ToTable("connection_log", (string)null);
|
||||
@@ -1398,6 +1407,18 @@ namespace Content.Server.Database.Migrations.Sqlite
|
||||
b.Navigation("Profile");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Content.Server.Database.ConnectionLog", b =>
|
||||
{
|
||||
b.HasOne("Content.Server.Database.Server", "Server")
|
||||
.WithMany("ConnectionLogs")
|
||||
.HasForeignKey("ServerId")
|
||||
.OnDelete(DeleteBehavior.SetNull)
|
||||
.IsRequired()
|
||||
.HasConstraintName("FK_connection_log_server_server_id");
|
||||
|
||||
b.Navigation("Server");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Content.Server.Database.Job", b =>
|
||||
{
|
||||
b.HasOne("Content.Server.Database.Profile", "Profile")
|
||||
@@ -1644,6 +1665,8 @@ namespace Content.Server.Database.Migrations.Sqlite
|
||||
|
||||
modelBuilder.Entity("Content.Server.Database.Server", b =>
|
||||
{
|
||||
b.Navigation("ConnectionLogs");
|
||||
|
||||
b.Navigation("Rounds");
|
||||
});
|
||||
|
||||
|
||||
@@ -168,6 +168,15 @@ namespace Content.Server.Database
|
||||
modelBuilder.Entity<ConnectionLog>()
|
||||
.HasIndex(p => p.UserId);
|
||||
|
||||
modelBuilder.Entity<ConnectionLog>()
|
||||
.Property(p => p.ServerId)
|
||||
.HasDefaultValue(0);
|
||||
|
||||
modelBuilder.Entity<ConnectionLog>()
|
||||
.HasOne(p => p.Server)
|
||||
.WithMany(p => p.ConnectionLogs)
|
||||
.OnDelete(DeleteBehavior.SetNull);
|
||||
|
||||
// SetNull is necessary for created by/edited by-s here,
|
||||
// so you can safely delete admins (GDPR right to erasure) while keeping the notes intact
|
||||
|
||||
@@ -494,6 +503,9 @@ namespace Content.Server.Database
|
||||
|
||||
[InverseProperty(nameof(Round.Server))]
|
||||
public List<Round> Rounds { get; set; } = default!;
|
||||
|
||||
[InverseProperty(nameof(ConnectionLog.Server))]
|
||||
public List<ConnectionLog> ConnectionLogs { get; set; } = default!;
|
||||
}
|
||||
|
||||
[Index(nameof(Type))]
|
||||
@@ -749,7 +761,19 @@ namespace Content.Server.Database
|
||||
|
||||
public ConnectionDenyReason? Denied { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// ID of the <see cref="Server"/> that the connection was attempted to.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// <para>
|
||||
/// The default value of this column is set to <c>0</c>, which is the ID of the "<c>unknown</c>" server.
|
||||
/// This is intended for old entries (that didn't track this) and if the server name isn't configured.
|
||||
/// </para>
|
||||
/// </remarks>
|
||||
public int ServerId { get; set; }
|
||||
|
||||
public List<ServerBanHit> BanHits { get; set; } = null!;
|
||||
public Server Server { get; set; } = null!;
|
||||
}
|
||||
|
||||
public enum ConnectionDenyReason : byte
|
||||
|
||||
Reference in New Issue
Block a user