From d5d8b7253c613b0d7e4284dbc27d66a31e5896a9 Mon Sep 17 00:00:00 2001
From: Ted Wollman <25165500+TheTedder@users.noreply.github.com>
Date: Wed, 16 Aug 2023 15:45:31 -0400
Subject: [PATCH] Remove seed data (#182)
* Delete bad migrations.
* Don't create a default admin user.
* Remove seed data variables.
---
...0325191517_Users_SeedAdminUser.Designer.cs | 483 ------------------
.../20230325191517_Users_SeedAdminUser.cs | 46 --
LeaderboardBackend/Models/Entities/User.cs | 13 -
LeaderboardBackend/Program.cs | 17 -
example.env | 7 +-
5 files changed, 1 insertion(+), 565 deletions(-)
delete mode 100644 LeaderboardBackend/Migrations/20230325191517_Users_SeedAdminUser.Designer.cs
delete mode 100644 LeaderboardBackend/Migrations/20230325191517_Users_SeedAdminUser.cs
diff --git a/LeaderboardBackend/Migrations/20230325191517_Users_SeedAdminUser.Designer.cs b/LeaderboardBackend/Migrations/20230325191517_Users_SeedAdminUser.Designer.cs
deleted file mode 100644
index 47b95494..00000000
--- a/LeaderboardBackend/Migrations/20230325191517_Users_SeedAdminUser.Designer.cs
+++ /dev/null
@@ -1,483 +0,0 @@
-//
-using System;
-using LeaderboardBackend.Models.Entities;
-using Microsoft.EntityFrameworkCore;
-using Microsoft.EntityFrameworkCore.Infrastructure;
-using Microsoft.EntityFrameworkCore.Migrations;
-using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
-using NodaTime;
-using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
-
-#nullable disable
-
-namespace LeaderboardBackend.Migrations
-{
- [DbContext(typeof(ApplicationContext))]
- [Migration("20230325191517_Users_SeedAdminUser")]
- partial class UsersSeedAdminUser
- {
- ///
- protected override void BuildTargetModel(ModelBuilder modelBuilder)
- {
-#pragma warning disable 612, 618
- modelBuilder
- .HasAnnotation("ProductVersion", "7.0.2")
- .HasAnnotation("Relational:MaxIdentifierLength", 63);
-
- NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
-
- modelBuilder.Entity("LeaderboardBackend.Models.Entities.Ban", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("bigint")
- .HasColumnName("id");
-
- NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
-
- b.Property("BannedUserId")
- .HasColumnType("uuid")
- .HasColumnName("banned_user_id");
-
- b.Property("BanningUserId")
- .HasColumnType("uuid")
- .HasColumnName("banning_user_id");
-
- b.Property("CreatedAt")
- .ValueGeneratedOnAdd()
- .HasColumnType("timestamp with time zone")
- .HasColumnName("created_at")
- .HasDefaultValueSql("now()");
-
- b.Property("DeletedAt")
- .HasColumnType("timestamp with time zone")
- .HasColumnName("deleted_at");
-
- b.Property("LeaderboardId")
- .HasColumnType("bigint")
- .HasColumnName("leaderboard_id");
-
- b.Property("Reason")
- .IsRequired()
- .HasColumnType("text")
- .HasColumnName("reason");
-
- b.HasKey("Id")
- .HasName("pk_bans");
-
- b.HasIndex("BannedUserId")
- .HasDatabaseName("ix_bans_banned_user_id");
-
- b.HasIndex("BanningUserId")
- .HasDatabaseName("ix_bans_banning_user_id");
-
- b.HasIndex("LeaderboardId")
- .HasDatabaseName("ix_bans_leaderboard_id");
-
- b.ToTable("bans", (string)null);
- });
-
- modelBuilder.Entity("LeaderboardBackend.Models.Entities.Category", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("bigint")
- .HasColumnName("id");
-
- NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
-
- b.Property("LeaderboardId")
- .HasColumnType("bigint")
- .HasColumnName("leaderboard_id");
-
- b.Property("Name")
- .IsRequired()
- .HasColumnType("text")
- .HasColumnName("name");
-
- b.Property("PlayersMax")
- .HasColumnType("integer")
- .HasColumnName("players_max");
-
- b.Property("PlayersMin")
- .HasColumnType("integer")
- .HasColumnName("players_min");
-
- b.Property("Rules")
- .HasColumnType("text")
- .HasColumnName("rules");
-
- b.Property("Slug")
- .IsRequired()
- .HasColumnType("text")
- .HasColumnName("slug");
-
- b.HasKey("Id")
- .HasName("pk_categories");
-
- b.HasIndex("LeaderboardId")
- .HasDatabaseName("ix_categories_leaderboard_id");
-
- b.ToTable("categories", (string)null);
- });
-
- modelBuilder.Entity("LeaderboardBackend.Models.Entities.Judgement", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("bigint")
- .HasColumnName("id");
-
- NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
-
- b.Property("Approved")
- .HasColumnType("boolean")
- .HasColumnName("approved");
-
- b.Property("CreatedAt")
- .ValueGeneratedOnAdd()
- .HasColumnType("timestamp with time zone")
- .HasColumnName("created_at")
- .HasDefaultValueSql("now()");
-
- b.Property("JudgeId")
- .HasColumnType("uuid")
- .HasColumnName("judge_id");
-
- b.Property("Note")
- .IsRequired()
- .HasColumnType("text")
- .HasColumnName("note");
-
- b.Property("RunId")
- .HasColumnType("uuid")
- .HasColumnName("run_id");
-
- b.HasKey("Id")
- .HasName("pk_judgements");
-
- b.HasIndex("JudgeId")
- .HasDatabaseName("ix_judgements_judge_id");
-
- b.HasIndex("RunId")
- .HasDatabaseName("ix_judgements_run_id");
-
- b.ToTable("judgements", (string)null);
- });
-
- modelBuilder.Entity("LeaderboardBackend.Models.Entities.Leaderboard", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("bigint")
- .HasColumnName("id");
-
- NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
-
- b.Property("Name")
- .IsRequired()
- .HasColumnType("text")
- .HasColumnName("name");
-
- b.Property("Rules")
- .HasColumnType("text")
- .HasColumnName("rules");
-
- b.Property("Slug")
- .IsRequired()
- .HasColumnType("text")
- .HasColumnName("slug");
-
- b.HasKey("Id")
- .HasName("pk_leaderboards");
-
- b.ToTable("leaderboards", (string)null);
- });
-
- modelBuilder.Entity("LeaderboardBackend.Models.Entities.Modship", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("bigint")
- .HasColumnName("id");
-
- NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
-
- b.Property("LeaderboardId")
- .HasColumnType("bigint")
- .HasColumnName("leaderboard_id");
-
- b.Property("UserId")
- .HasColumnType("uuid")
- .HasColumnName("user_id");
-
- b.HasKey("Id")
- .HasName("pk_modships");
-
- b.HasIndex("LeaderboardId")
- .HasDatabaseName("ix_modships_leaderboard_id");
-
- b.HasIndex("UserId")
- .HasDatabaseName("ix_modships_user_id");
-
- b.ToTable("modships", (string)null);
- });
-
- modelBuilder.Entity("LeaderboardBackend.Models.Entities.Participation", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("bigint")
- .HasColumnName("id");
-
- NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
-
- b.Property("Comment")
- .HasColumnType("text")
- .HasColumnName("comment");
-
- b.Property("RunId")
- .HasColumnType("uuid")
- .HasColumnName("run_id");
-
- b.Property("RunnerId")
- .HasColumnType("uuid")
- .HasColumnName("runner_id");
-
- b.Property("Vod")
- .HasColumnType("text")
- .HasColumnName("vod");
-
- b.HasKey("Id")
- .HasName("pk_participations");
-
- b.HasIndex("RunId")
- .HasDatabaseName("ix_participations_run_id");
-
- b.HasIndex("RunnerId")
- .HasDatabaseName("ix_participations_runner_id");
-
- b.ToTable("participations", (string)null);
- });
-
- modelBuilder.Entity("LeaderboardBackend.Models.Entities.Run", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("uuid")
- .HasColumnName("id");
-
- b.Property("CategoryId")
- .HasColumnType("bigint")
- .HasColumnName("category_id");
-
- b.Property("PlayedOn")
- .HasColumnType("date")
- .HasColumnName("played_on");
-
- b.Property("Status")
- .HasColumnType("integer")
- .HasColumnName("status");
-
- b.Property("SubmittedAt")
- .HasColumnType("timestamp with time zone")
- .HasColumnName("submitted_at");
-
- b.HasKey("Id")
- .HasName("pk_runs");
-
- b.HasIndex("CategoryId")
- .HasDatabaseName("ix_runs_category_id");
-
- b.ToTable("runs", (string)null);
- });
-
- modelBuilder.Entity("LeaderboardBackend.Models.Entities.User", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("uuid")
- .HasColumnName("id");
-
- b.Property("About")
- .HasColumnType("text")
- .HasColumnName("about");
-
- b.Property("Admin")
- .HasColumnType("boolean")
- .HasColumnName("admin");
-
- b.Property("Email")
- .IsRequired()
- .HasColumnType("text")
- .HasColumnName("email");
-
- b.Property("Password")
- .IsRequired()
- .HasColumnType("text")
- .HasColumnName("password");
-
- b.Property("Username")
- .IsRequired()
- .HasColumnType("text")
- .HasColumnName("username");
-
- b.HasKey("Id")
- .HasName("pk_users");
-
- b.ToTable("users", (string)null);
-
- b.HasData(
- new
- {
- Id = new Guid("421bb896-1990-48c6-8b0c-d69f56d6746a"),
- Admin = true,
- Email = "omega@star.com",
- Password = "$2a$11$tNvA94WqpJ.O7S7D6lVMn.E/UxcFYztl3BkcnBj/hgE8PY/8nCRQe",
- Username = "Galactus"
- });
- });
-
- modelBuilder.Entity("LeaderboardBackend.Models.Entities.Ban", b =>
- {
- b.HasOne("LeaderboardBackend.Models.Entities.User", "BannedUser")
- .WithMany("BansReceived")
- .HasForeignKey("BannedUserId")
- .OnDelete(DeleteBehavior.Cascade)
- .IsRequired()
- .HasConstraintName("fk_bans_users_banned_user_id");
-
- b.HasOne("LeaderboardBackend.Models.Entities.User", "BanningUser")
- .WithMany("BansGiven")
- .HasForeignKey("BanningUserId")
- .HasConstraintName("fk_bans_users_banning_user_id");
-
- b.HasOne("LeaderboardBackend.Models.Entities.Leaderboard", "Leaderboard")
- .WithMany("Bans")
- .HasForeignKey("LeaderboardId")
- .HasConstraintName("fk_bans_leaderboards_leaderboard_id");
-
- b.Navigation("BannedUser");
-
- b.Navigation("BanningUser");
-
- b.Navigation("Leaderboard");
- });
-
- modelBuilder.Entity("LeaderboardBackend.Models.Entities.Category", b =>
- {
- b.HasOne("LeaderboardBackend.Models.Entities.Leaderboard", "Leaderboard")
- .WithMany("Categories")
- .HasForeignKey("LeaderboardId")
- .OnDelete(DeleteBehavior.Cascade)
- .IsRequired()
- .HasConstraintName("fk_categories_leaderboards_leaderboard_id");
-
- b.Navigation("Leaderboard");
- });
-
- modelBuilder.Entity("LeaderboardBackend.Models.Entities.Judgement", b =>
- {
- b.HasOne("LeaderboardBackend.Models.Entities.User", "Judge")
- .WithMany()
- .HasForeignKey("JudgeId")
- .OnDelete(DeleteBehavior.Cascade)
- .IsRequired()
- .HasConstraintName("fk_judgements_users_judge_id");
-
- b.HasOne("LeaderboardBackend.Models.Entities.Run", "Run")
- .WithMany("Judgements")
- .HasForeignKey("RunId")
- .OnDelete(DeleteBehavior.Cascade)
- .IsRequired()
- .HasConstraintName("fk_judgements_runs_run_id");
-
- b.Navigation("Judge");
-
- b.Navigation("Run");
- });
-
- modelBuilder.Entity("LeaderboardBackend.Models.Entities.Modship", b =>
- {
- b.HasOne("LeaderboardBackend.Models.Entities.Leaderboard", "Leaderboard")
- .WithMany("Modships")
- .HasForeignKey("LeaderboardId")
- .OnDelete(DeleteBehavior.Cascade)
- .IsRequired()
- .HasConstraintName("fk_modships_leaderboards_leaderboard_id");
-
- b.HasOne("LeaderboardBackend.Models.Entities.User", "User")
- .WithMany("Modships")
- .HasForeignKey("UserId")
- .OnDelete(DeleteBehavior.Cascade)
- .IsRequired()
- .HasConstraintName("fk_modships_users_user_id");
-
- b.Navigation("Leaderboard");
-
- b.Navigation("User");
- });
-
- modelBuilder.Entity("LeaderboardBackend.Models.Entities.Participation", b =>
- {
- b.HasOne("LeaderboardBackend.Models.Entities.Run", "Run")
- .WithMany("Participations")
- .HasForeignKey("RunId")
- .OnDelete(DeleteBehavior.Cascade)
- .IsRequired()
- .HasConstraintName("fk_participations_runs_run_id");
-
- b.HasOne("LeaderboardBackend.Models.Entities.User", "Runner")
- .WithMany("Participations")
- .HasForeignKey("RunnerId")
- .OnDelete(DeleteBehavior.Cascade)
- .IsRequired()
- .HasConstraintName("fk_participations_users_runner_id");
-
- b.Navigation("Run");
-
- b.Navigation("Runner");
- });
-
- modelBuilder.Entity("LeaderboardBackend.Models.Entities.Run", b =>
- {
- b.HasOne("LeaderboardBackend.Models.Entities.Category", "Category")
- .WithMany()
- .HasForeignKey("CategoryId")
- .OnDelete(DeleteBehavior.Cascade)
- .IsRequired()
- .HasConstraintName("fk_runs_categories_category_id");
-
- b.Navigation("Category");
- });
-
- modelBuilder.Entity("LeaderboardBackend.Models.Entities.Leaderboard", b =>
- {
- b.Navigation("Bans");
-
- b.Navigation("Categories");
-
- b.Navigation("Modships");
- });
-
- modelBuilder.Entity("LeaderboardBackend.Models.Entities.Run", b =>
- {
- b.Navigation("Judgements");
-
- b.Navigation("Participations");
- });
-
- modelBuilder.Entity("LeaderboardBackend.Models.Entities.User", b =>
- {
- b.Navigation("BansGiven");
-
- b.Navigation("BansReceived");
-
- b.Navigation("Modships");
-
- b.Navigation("Participations");
- });
-#pragma warning restore 612, 618
- }
- }
-}
diff --git a/LeaderboardBackend/Migrations/20230325191517_Users_SeedAdminUser.cs b/LeaderboardBackend/Migrations/20230325191517_Users_SeedAdminUser.cs
deleted file mode 100644
index b574771a..00000000
--- a/LeaderboardBackend/Migrations/20230325191517_Users_SeedAdminUser.cs
+++ /dev/null
@@ -1,46 +0,0 @@
-using Microsoft.EntityFrameworkCore.Migrations;
-
-#nullable disable
-
-namespace LeaderboardBackend.Migrations
-{
- ///
- public partial class UsersSeedAdminUser : Migration
- {
- ///
- protected override void Up(MigrationBuilder migrationBuilder)
- {
- string email =
- Environment.GetEnvironmentVariable("LGG_ADMIN_EMAIL") ?? "omega@star.com";
- string username =
- Environment.GetEnvironmentVariable("LGG_ADMIN_USERNAME") ?? "Galactus";
- string password =
- Environment.GetEnvironmentVariable("LGG_ADMIN_PASSWORD") ?? "3ntr0pyChaos";
- string hashedPassword = BCrypt.Net.BCrypt.EnhancedHashPassword(password);
-
- migrationBuilder.InsertData(
- table: "users",
- columns: new[] { "id", "about", "admin", "email", "password", "username" },
- values: new object[]
- {
- new Guid("421bb896-1990-48c6-8b0c-d69f56d6746a"),
- null,
- true,
- email,
- hashedPassword,
- username
- }
- );
- }
-
- ///
- protected override void Down(MigrationBuilder migrationBuilder)
- {
- migrationBuilder.DeleteData(
- table: "users",
- keyColumn: "id",
- keyValue: new Guid("421bb896-1990-48c6-8b0c-d69f56d6746a")
- );
- }
- }
-}
diff --git a/LeaderboardBackend/Models/Entities/User.cs b/LeaderboardBackend/Models/Entities/User.cs
index 7eb38e01..ff83a730 100644
--- a/LeaderboardBackend/Models/Entities/User.cs
+++ b/LeaderboardBackend/Models/Entities/User.cs
@@ -18,8 +18,6 @@ public enum UserRole
///
public class User
{
- public static readonly Guid s_seedAdminId = new("421bb896-1990-48c6-8b0c-d69f56d6746a");
-
///
/// The unique identifier of the `User`.
/// Generated on creation.
@@ -109,16 +107,5 @@ public void Configure(EntityTypeBuilder builder)
builder.HasIndex(x => x.Email)
.IsUnique()
.HasDatabaseName(EMAIL_UNIQUE_INDEX);
-
- builder.HasData(
- new User
- {
- Id = User.s_seedAdminId,
- Role = UserRole.Administrator,
- Email = "omega@star.com",
- Password = "$2a$11$tNvA94WqpJ.O7S7D6lVMn.E/UxcFYztl3BkcnBj/hgE8PY/8nCRQe", // "3ntr0pyChaos"
- Username = "Galactus"
- }
- );
}
}
diff --git a/LeaderboardBackend/Program.cs b/LeaderboardBackend/Program.cs
index 61a71e9d..1e0042a6 100644
--- a/LeaderboardBackend/Program.cs
+++ b/LeaderboardBackend/Program.cs
@@ -313,23 +313,6 @@
if (config.UseInMemoryDb)
{
context.Database.EnsureCreated();
- User? defaultUser = context.Find(User.s_seedAdminId);
- if (defaultUser is null)
- {
- throw new InvalidOperationException("The default user was not correctly seeded.");
- }
-
- defaultUser.Username =
- Environment.GetEnvironmentVariable("LGG_ADMIN_USERNAME") ?? defaultUser.Username;
- defaultUser.Email =
- Environment.GetEnvironmentVariable("LGG_ADMIN_EMAIL") ?? defaultUser.Email;
- string? newPassword = Environment.GetEnvironmentVariable("LGG_ADMIN_PASSWORD");
- if (newPassword is not null)
- {
- defaultUser.Password = BCryptNet.EnhancedHashPassword(newPassword);
- }
-
- context.SaveChanges();
}
else if (config.MigrateDb && app.Environment.IsDevelopment())
{
diff --git a/example.env b/example.env
index 85c73ce4..66d81cf3 100644
--- a/example.env
+++ b/example.env
@@ -5,7 +5,7 @@ AllowedOrigins=*
ApplicationContext__UseInMemoryDb=false
# migrate the database on startup (Development only)
-ApplicationContext__MigrateDb=false
+ApplicationContext__MigrateDb=false
ApplicationContext__PG__HOST=localhost
ApplicationContext__PG__USER=admin
@@ -13,11 +13,6 @@ ApplicationContext__PG__PASSWORD=example
ApplicationContext__PG__DB=leaderboardsmain
ApplicationContext__PG__PORT=5432
-# customize the default admin user
-LGG_ADMIN_EMAIL=omega@star.com
-LGG_ADMIN_PASSWORD=3ntr0pyChaos
-LGG_ADMIN_USERNAME=Galactus
-
JWT__KEY=coolsecretkeywow
JWT__ISSUER=leaderboards.gg