From 077f6f3dc46496e3934d0034f5be67a5856bd603 Mon Sep 17 00:00:00 2001 From: Stanley Dimant Date: Tue, 16 Aug 2022 19:04:53 +0200 Subject: [PATCH] add max limit for strings --- ...16170426_SetMaxLimitForStrings.Designer.cs | 302 ++++++++++++++++++ .../20220816170426_SetMaxLimitForStrings.cs | 131 ++++++++ .../Migrations/MareDbContextModelSnapshot.cs | 21 +- .../MareSynchronosServer/Models/Banned.cs | 1 + .../Models/BannedRegistrations.cs | 1 + .../MareSynchronosServer/Models/FileCache.cs | 1 + .../Models/ForbiddenUploadEntry.cs | 1 + .../Models/LodeStoneAuth.cs | 2 + .../MareSynchronosServer/Models/User.cs | 1 + 9 files changed, 454 insertions(+), 7 deletions(-) create mode 100644 MareSynchronosServer/MareSynchronosServer/Migrations/20220816170426_SetMaxLimitForStrings.Designer.cs create mode 100644 MareSynchronosServer/MareSynchronosServer/Migrations/20220816170426_SetMaxLimitForStrings.cs diff --git a/MareSynchronosServer/MareSynchronosServer/Migrations/20220816170426_SetMaxLimitForStrings.Designer.cs b/MareSynchronosServer/MareSynchronosServer/Migrations/20220816170426_SetMaxLimitForStrings.Designer.cs new file mode 100644 index 0000000..6852d4e --- /dev/null +++ b/MareSynchronosServer/MareSynchronosServer/Migrations/20220816170426_SetMaxLimitForStrings.Designer.cs @@ -0,0 +1,302 @@ +// +using System; +using MareSynchronosServer.Data; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; + +#nullable disable + +namespace MareSynchronosServer.Migrations +{ + [DbContext(typeof(MareDbContext))] + [Migration("20220816170426_SetMaxLimitForStrings")] + partial class SetMaxLimitForStrings + { + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "6.0.8") + .HasAnnotation("Relational:MaxIdentifierLength", 63); + + NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); + + modelBuilder.Entity("MareSynchronosServer.Models.Auth", b => + { + b.Property("HashedKey") + .HasMaxLength(64) + .HasColumnType("character varying(64)") + .HasColumnName("hashed_key"); + + b.Property("UserUID") + .HasColumnType("character varying(10)") + .HasColumnName("user_uid"); + + b.HasKey("HashedKey") + .HasName("pk_auth"); + + b.HasIndex("UserUID") + .HasDatabaseName("ix_auth_user_uid"); + + b.ToTable("auth", (string)null); + }); + + modelBuilder.Entity("MareSynchronosServer.Models.Banned", b => + { + b.Property("CharacterIdentification") + .HasMaxLength(100) + .HasColumnType("character varying(100)") + .HasColumnName("character_identification"); + + b.Property("Reason") + .HasColumnType("text") + .HasColumnName("reason"); + + b.Property("Timestamp") + .IsConcurrencyToken() + .ValueGeneratedOnAddOrUpdate() + .HasColumnType("bytea") + .HasColumnName("timestamp"); + + b.HasKey("CharacterIdentification") + .HasName("pk_banned_users"); + + b.ToTable("banned_users", (string)null); + }); + + modelBuilder.Entity("MareSynchronosServer.Models.BannedRegistrations", b => + { + b.Property("DiscordIdOrLodestoneAuth") + .HasMaxLength(100) + .HasColumnType("character varying(100)") + .HasColumnName("discord_id_or_lodestone_auth"); + + b.HasKey("DiscordIdOrLodestoneAuth") + .HasName("pk_banned_registrations"); + + b.ToTable("banned_registrations", (string)null); + }); + + modelBuilder.Entity("MareSynchronosServer.Models.ClientPair", b => + { + b.Property("UserUID") + .HasMaxLength(10) + .HasColumnType("character varying(10)") + .HasColumnName("user_uid"); + + b.Property("OtherUserUID") + .HasMaxLength(10) + .HasColumnType("character varying(10)") + .HasColumnName("other_user_uid"); + + b.Property("AllowReceivingMessages") + .HasColumnType("boolean") + .HasColumnName("allow_receiving_messages"); + + b.Property("IsPaused") + .HasColumnType("boolean") + .HasColumnName("is_paused"); + + b.Property("Timestamp") + .IsConcurrencyToken() + .ValueGeneratedOnAddOrUpdate() + .HasColumnType("bytea") + .HasColumnName("timestamp"); + + b.HasKey("UserUID", "OtherUserUID") + .HasName("pk_client_pairs"); + + b.HasIndex("OtherUserUID") + .HasDatabaseName("ix_client_pairs_other_user_uid"); + + b.HasIndex("UserUID") + .HasDatabaseName("ix_client_pairs_user_uid"); + + b.ToTable("client_pairs", (string)null); + }); + + modelBuilder.Entity("MareSynchronosServer.Models.FileCache", b => + { + b.Property("Hash") + .HasMaxLength(40) + .HasColumnType("character varying(40)") + .HasColumnName("hash"); + + b.Property("Timestamp") + .IsConcurrencyToken() + .ValueGeneratedOnAddOrUpdate() + .HasColumnType("bytea") + .HasColumnName("timestamp"); + + b.Property("Uploaded") + .HasColumnType("boolean") + .HasColumnName("uploaded"); + + b.Property("UploaderUID") + .HasMaxLength(10) + .HasColumnType("character varying(10)") + .HasColumnName("uploader_uid"); + + b.HasKey("Hash") + .HasName("pk_file_caches"); + + b.HasIndex("UploaderUID") + .HasDatabaseName("ix_file_caches_uploader_uid"); + + b.ToTable("file_caches", (string)null); + }); + + modelBuilder.Entity("MareSynchronosServer.Models.ForbiddenUploadEntry", b => + { + b.Property("Hash") + .HasMaxLength(40) + .HasColumnType("character varying(40)") + .HasColumnName("hash"); + + b.Property("ForbiddenBy") + .HasMaxLength(100) + .HasColumnType("character varying(100)") + .HasColumnName("forbidden_by"); + + b.Property("Timestamp") + .IsConcurrencyToken() + .ValueGeneratedOnAddOrUpdate() + .HasColumnType("bytea") + .HasColumnName("timestamp"); + + b.HasKey("Hash") + .HasName("pk_forbidden_upload_entries"); + + b.ToTable("forbidden_upload_entries", (string)null); + }); + + modelBuilder.Entity("MareSynchronosServer.Models.LodeStoneAuth", b => + { + b.Property("DiscordId") + .ValueGeneratedOnAdd() + .HasColumnType("numeric(20,0)") + .HasColumnName("discord_id"); + + b.Property("HashedLodestoneId") + .HasMaxLength(100) + .HasColumnType("character varying(100)") + .HasColumnName("hashed_lodestone_id"); + + b.Property("LodestoneAuthString") + .HasMaxLength(100) + .HasColumnType("character varying(100)") + .HasColumnName("lodestone_auth_string"); + + b.Property("StartedAt") + .HasColumnType("timestamp with time zone") + .HasColumnName("started_at"); + + b.Property("UserUID") + .HasColumnType("character varying(10)") + .HasColumnName("user_uid"); + + b.HasKey("DiscordId") + .HasName("pk_lodestone_auth"); + + b.HasIndex("UserUID") + .HasDatabaseName("ix_lodestone_auth_user_uid"); + + b.ToTable("lodestone_auth", (string)null); + }); + + modelBuilder.Entity("MareSynchronosServer.Models.User", b => + { + b.Property("UID") + .HasMaxLength(10) + .HasColumnType("character varying(10)") + .HasColumnName("uid"); + + b.Property("CharacterIdentification") + .HasMaxLength(100) + .HasColumnType("character varying(100)") + .HasColumnName("character_identification"); + + b.Property("IsAdmin") + .HasColumnType("boolean") + .HasColumnName("is_admin"); + + b.Property("IsModerator") + .HasColumnType("boolean") + .HasColumnName("is_moderator"); + + b.Property("LastLoggedIn") + .HasColumnType("timestamp with time zone") + .HasColumnName("last_logged_in"); + + b.Property("Timestamp") + .IsConcurrencyToken() + .ValueGeneratedOnAddOrUpdate() + .HasColumnType("bytea") + .HasColumnName("timestamp"); + + b.HasKey("UID") + .HasName("pk_users"); + + b.HasIndex("CharacterIdentification") + .HasDatabaseName("ix_users_character_identification"); + + b.ToTable("users", (string)null); + }); + + modelBuilder.Entity("MareSynchronosServer.Models.Auth", b => + { + b.HasOne("MareSynchronosServer.Models.User", "User") + .WithMany() + .HasForeignKey("UserUID") + .HasConstraintName("fk_auth_users_user_temp_id"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("MareSynchronosServer.Models.ClientPair", b => + { + b.HasOne("MareSynchronosServer.Models.User", "OtherUser") + .WithMany() + .HasForeignKey("OtherUserUID") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("fk_client_pairs_users_other_user_temp_id1"); + + b.HasOne("MareSynchronosServer.Models.User", "User") + .WithMany() + .HasForeignKey("UserUID") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("fk_client_pairs_users_user_temp_id2"); + + b.Navigation("OtherUser"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("MareSynchronosServer.Models.FileCache", b => + { + b.HasOne("MareSynchronosServer.Models.User", "Uploader") + .WithMany() + .HasForeignKey("UploaderUID") + .HasConstraintName("fk_file_caches_users_uploader_uid"); + + b.Navigation("Uploader"); + }); + + modelBuilder.Entity("MareSynchronosServer.Models.LodeStoneAuth", b => + { + b.HasOne("MareSynchronosServer.Models.User", "User") + .WithMany() + .HasForeignKey("UserUID") + .HasConstraintName("fk_lodestone_auth_users_user_uid"); + + b.Navigation("User"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/MareSynchronosServer/MareSynchronosServer/Migrations/20220816170426_SetMaxLimitForStrings.cs b/MareSynchronosServer/MareSynchronosServer/Migrations/20220816170426_SetMaxLimitForStrings.cs new file mode 100644 index 0000000..a6cbde0 --- /dev/null +++ b/MareSynchronosServer/MareSynchronosServer/Migrations/20220816170426_SetMaxLimitForStrings.cs @@ -0,0 +1,131 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace MareSynchronosServer.Migrations +{ + public partial class SetMaxLimitForStrings : Migration + { + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AlterColumn( + name: "character_identification", + table: "users", + type: "character varying(100)", + maxLength: 100, + nullable: true, + oldClrType: typeof(string), + oldType: "text", + oldNullable: true); + + migrationBuilder.AlterColumn( + name: "lodestone_auth_string", + table: "lodestone_auth", + type: "character varying(100)", + maxLength: 100, + nullable: true, + oldClrType: typeof(string), + oldType: "text", + oldNullable: true); + + migrationBuilder.AlterColumn( + name: "hashed_lodestone_id", + table: "lodestone_auth", + type: "character varying(100)", + maxLength: 100, + nullable: true, + oldClrType: typeof(string), + oldType: "text", + oldNullable: true); + + migrationBuilder.AlterColumn( + name: "forbidden_by", + table: "forbidden_upload_entries", + type: "character varying(100)", + maxLength: 100, + nullable: true, + oldClrType: typeof(string), + oldType: "text", + oldNullable: true); + + migrationBuilder.AlterColumn( + name: "character_identification", + table: "banned_users", + type: "character varying(100)", + maxLength: 100, + nullable: false, + oldClrType: typeof(string), + oldType: "text"); + + migrationBuilder.AlterColumn( + name: "discord_id_or_lodestone_auth", + table: "banned_registrations", + type: "character varying(100)", + maxLength: 100, + nullable: false, + oldClrType: typeof(string), + oldType: "text"); + } + + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.AlterColumn( + name: "character_identification", + table: "users", + type: "text", + nullable: true, + oldClrType: typeof(string), + oldType: "character varying(100)", + oldMaxLength: 100, + oldNullable: true); + + migrationBuilder.AlterColumn( + name: "lodestone_auth_string", + table: "lodestone_auth", + type: "text", + nullable: true, + oldClrType: typeof(string), + oldType: "character varying(100)", + oldMaxLength: 100, + oldNullable: true); + + migrationBuilder.AlterColumn( + name: "hashed_lodestone_id", + table: "lodestone_auth", + type: "text", + nullable: true, + oldClrType: typeof(string), + oldType: "character varying(100)", + oldMaxLength: 100, + oldNullable: true); + + migrationBuilder.AlterColumn( + name: "forbidden_by", + table: "forbidden_upload_entries", + type: "text", + nullable: true, + oldClrType: typeof(string), + oldType: "character varying(100)", + oldMaxLength: 100, + oldNullable: true); + + migrationBuilder.AlterColumn( + name: "character_identification", + table: "banned_users", + type: "text", + nullable: false, + oldClrType: typeof(string), + oldType: "character varying(100)", + oldMaxLength: 100); + + migrationBuilder.AlterColumn( + name: "discord_id_or_lodestone_auth", + table: "banned_registrations", + type: "text", + nullable: false, + oldClrType: typeof(string), + oldType: "character varying(100)", + oldMaxLength: 100); + } + } +} diff --git a/MareSynchronosServer/MareSynchronosServer/Migrations/MareDbContextModelSnapshot.cs b/MareSynchronosServer/MareSynchronosServer/Migrations/MareDbContextModelSnapshot.cs index ea90d28..0e6cb67 100644 --- a/MareSynchronosServer/MareSynchronosServer/Migrations/MareDbContextModelSnapshot.cs +++ b/MareSynchronosServer/MareSynchronosServer/Migrations/MareDbContextModelSnapshot.cs @@ -17,7 +17,7 @@ namespace MareSynchronosServer.Migrations { #pragma warning disable 612, 618 modelBuilder - .HasAnnotation("ProductVersion", "6.0.6") + .HasAnnotation("ProductVersion", "6.0.8") .HasAnnotation("Relational:MaxIdentifierLength", 63); NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); @@ -45,7 +45,8 @@ namespace MareSynchronosServer.Migrations modelBuilder.Entity("MareSynchronosServer.Models.Banned", b => { b.Property("CharacterIdentification") - .HasColumnType("text") + .HasMaxLength(100) + .HasColumnType("character varying(100)") .HasColumnName("character_identification"); b.Property("Reason") @@ -67,7 +68,8 @@ namespace MareSynchronosServer.Migrations modelBuilder.Entity("MareSynchronosServer.Models.BannedRegistrations", b => { b.Property("DiscordIdOrLodestoneAuth") - .HasColumnType("text") + .HasMaxLength(100) + .HasColumnType("character varying(100)") .HasColumnName("discord_id_or_lodestone_auth"); b.HasKey("DiscordIdOrLodestoneAuth") @@ -132,6 +134,7 @@ namespace MareSynchronosServer.Migrations .HasColumnName("uploaded"); b.Property("UploaderUID") + .HasMaxLength(10) .HasColumnType("character varying(10)") .HasColumnName("uploader_uid"); @@ -152,7 +155,8 @@ namespace MareSynchronosServer.Migrations .HasColumnName("hash"); b.Property("ForbiddenBy") - .HasColumnType("text") + .HasMaxLength(100) + .HasColumnType("character varying(100)") .HasColumnName("forbidden_by"); b.Property("Timestamp") @@ -175,11 +179,13 @@ namespace MareSynchronosServer.Migrations .HasColumnName("discord_id"); b.Property("HashedLodestoneId") - .HasColumnType("text") + .HasMaxLength(100) + .HasColumnType("character varying(100)") .HasColumnName("hashed_lodestone_id"); b.Property("LodestoneAuthString") - .HasColumnType("text") + .HasMaxLength(100) + .HasColumnType("character varying(100)") .HasColumnName("lodestone_auth_string"); b.Property("StartedAt") @@ -207,7 +213,8 @@ namespace MareSynchronosServer.Migrations .HasColumnName("uid"); b.Property("CharacterIdentification") - .HasColumnType("text") + .HasMaxLength(100) + .HasColumnType("character varying(100)") .HasColumnName("character_identification"); b.Property("IsAdmin") diff --git a/MareSynchronosServer/MareSynchronosServer/Models/Banned.cs b/MareSynchronosServer/MareSynchronosServer/Models/Banned.cs index 32b3405..63d3958 100644 --- a/MareSynchronosServer/MareSynchronosServer/Models/Banned.cs +++ b/MareSynchronosServer/MareSynchronosServer/Models/Banned.cs @@ -5,6 +5,7 @@ namespace MareSynchronosServer.Models public class Banned { [Key] + [MaxLength(100)] public string CharacterIdentification { get; set; } public string Reason { get; set; } [Timestamp] diff --git a/MareSynchronosServer/MareSynchronosServer/Models/BannedRegistrations.cs b/MareSynchronosServer/MareSynchronosServer/Models/BannedRegistrations.cs index ca107a7..f811399 100644 --- a/MareSynchronosServer/MareSynchronosServer/Models/BannedRegistrations.cs +++ b/MareSynchronosServer/MareSynchronosServer/Models/BannedRegistrations.cs @@ -5,6 +5,7 @@ namespace MareSynchronosServer.Models public class BannedRegistrations { [Key] + [MaxLength(100)] public string DiscordIdOrLodestoneAuth { get; set; } } } diff --git a/MareSynchronosServer/MareSynchronosServer/Models/FileCache.cs b/MareSynchronosServer/MareSynchronosServer/Models/FileCache.cs index da48560..d84f2a6 100644 --- a/MareSynchronosServer/MareSynchronosServer/Models/FileCache.cs +++ b/MareSynchronosServer/MareSynchronosServer/Models/FileCache.cs @@ -7,6 +7,7 @@ namespace MareSynchronosServer.Models [Key] [MaxLength(40)] public string Hash { get; set; } + [MaxLength(10)] public string UploaderUID { get; set; } public User Uploader { get; set; } public bool Uploaded { get; set; } diff --git a/MareSynchronosServer/MareSynchronosServer/Models/ForbiddenUploadEntry.cs b/MareSynchronosServer/MareSynchronosServer/Models/ForbiddenUploadEntry.cs index bc0c34d..cf3e4ae 100644 --- a/MareSynchronosServer/MareSynchronosServer/Models/ForbiddenUploadEntry.cs +++ b/MareSynchronosServer/MareSynchronosServer/Models/ForbiddenUploadEntry.cs @@ -7,6 +7,7 @@ namespace MareSynchronosServer.Models [Key] [MaxLength(40)] public string Hash { get; set; } + [MaxLength(100)] public string ForbiddenBy { get; set; } [Timestamp] public byte[] Timestamp { get; set; } diff --git a/MareSynchronosServer/MareSynchronosServer/Models/LodeStoneAuth.cs b/MareSynchronosServer/MareSynchronosServer/Models/LodeStoneAuth.cs index af2c1ba..976a52d 100644 --- a/MareSynchronosServer/MareSynchronosServer/Models/LodeStoneAuth.cs +++ b/MareSynchronosServer/MareSynchronosServer/Models/LodeStoneAuth.cs @@ -7,7 +7,9 @@ namespace MareSynchronosServer.Models { [Key] public ulong DiscordId { get; set; } + [MaxLength(100)] public string HashedLodestoneId { get; set; } + [MaxLength(100)] public string? LodestoneAuthString { get; set; } public User? User { get; set; } public DateTime? StartedAt { get; set; } diff --git a/MareSynchronosServer/MareSynchronosServer/Models/User.cs b/MareSynchronosServer/MareSynchronosServer/Models/User.cs index 38b1a24..ff4fcd2 100644 --- a/MareSynchronosServer/MareSynchronosServer/Models/User.cs +++ b/MareSynchronosServer/MareSynchronosServer/Models/User.cs @@ -8,6 +8,7 @@ namespace MareSynchronosServer.Models [Key] [MaxLength(10)] public string UID { get; set; } + [MaxLength(100)] public string CharacterIdentification { get; set; } [Timestamp] public byte[] Timestamp { get; set; }