diff options
-rw-r--r-- | Migrations/20221118044105_InitialMigration.Designer.cs (renamed from Migrations/20221118022738_InitialMigration.Designer.cs) | 36 | ||||
-rw-r--r-- | Migrations/20221118044105_InitialMigration.cs (renamed from Migrations/20221118022738_InitialMigration.cs) | 15 | ||||
-rw-r--r-- | Migrations/ApplicationDbContextModelSnapshot.cs | 34 | ||||
-rw-r--r-- | Models/ApplicationDbContext.cs | 16 |
4 files changed, 100 insertions, 1 deletions
diff --git a/Migrations/20221118022738_InitialMigration.Designer.cs b/Migrations/20221118044105_InitialMigration.Designer.cs index 61158d2..cd7ec30 100644 --- a/Migrations/20221118022738_InitialMigration.Designer.cs +++ b/Migrations/20221118044105_InitialMigration.Designer.cs @@ -12,7 +12,7 @@ using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; namespace BackendPIA.Migrations { [DbContext(typeof(ApplicationDbContext))] - [Migration("20221118022738_InitialMigration")] + [Migration("20221118044105_InitialMigration")] partial class InitialMigration { /// <inheritdoc /> @@ -91,6 +91,24 @@ namespace BackendPIA.Migrations .HasDatabaseName("UserNameIndex"); b.ToTable("AspNetUsers", (string)null); + + b.HasData( + new + { + Id = "d42006bc-7f69-4aa4-b247-eb9e2abfe0ec", + AccessFailedCount = 0, + ConcurrencyStamp = "8bbb8fce-308b-4822-97e1-5741fc955a90", + Email = "admin@example.com", + EmailConfirmed = false, + LockoutEnabled = false, + NormalizedEmail = "ADMIN@EXAMPLE.COM", + NormalizedUserName = "ADMIN", + PasswordHash = "AQAAAAIAAYagAAAAEENVY01/0BOrBai8zaioq9GOr+ftYIZhUBtulPtda1tTREUCOeVst9cnrB7Ogz4Bsg==", + PhoneNumberConfirmed = false, + SecurityStamp = "5a1e1053-690e-4610-ab66-7a86fe2e04c8", + TwoFactorEnabled = false, + UserName = "admin" + }); }); modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRole", b => @@ -117,6 +135,15 @@ namespace BackendPIA.Migrations .HasDatabaseName("RoleNameIndex"); b.ToTable("AspNetRoles", (string)null); + + b.HasData( + new + { + Id = "24edc3d6-bf9c-41a1-9371-224e4419ccb0", + ConcurrencyStamp = "24edc3d6-bf9c-41a1-9371-224e4419ccb0", + Name = "Administrator", + NormalizedName = "ADMINISTRATOR" + }); }); modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim<string>", b => @@ -204,6 +231,13 @@ namespace BackendPIA.Migrations b.HasIndex("RoleId"); b.ToTable("AspNetUserRoles", (string)null); + + b.HasData( + new + { + UserId = "d42006bc-7f69-4aa4-b247-eb9e2abfe0ec", + RoleId = "24edc3d6-bf9c-41a1-9371-224e4419ccb0" + }); }); modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken<string>", b => diff --git a/Migrations/20221118022738_InitialMigration.cs b/Migrations/20221118044105_InitialMigration.cs index b8c2a78..44452b9 100644 --- a/Migrations/20221118022738_InitialMigration.cs +++ b/Migrations/20221118044105_InitialMigration.cs @@ -158,6 +158,21 @@ namespace BackendPIA.Migrations onDelete: ReferentialAction.Cascade); }); + migrationBuilder.InsertData( + table: "AspNetRoles", + columns: new[] { "Id", "ConcurrencyStamp", "Name", "NormalizedName" }, + values: new object[] { "24edc3d6-bf9c-41a1-9371-224e4419ccb0", "24edc3d6-bf9c-41a1-9371-224e4419ccb0", "Administrator", "ADMINISTRATOR" }); + + migrationBuilder.InsertData( + table: "AspNetUsers", + columns: new[] { "Id", "AccessFailedCount", "ConcurrencyStamp", "Email", "EmailConfirmed", "LockoutEnabled", "LockoutEnd", "NormalizedEmail", "NormalizedUserName", "PasswordHash", "PhoneNumber", "PhoneNumberConfirmed", "SecurityStamp", "SessionToken", "TwoFactorEnabled", "UserName" }, + values: new object[] { "d42006bc-7f69-4aa4-b247-eb9e2abfe0ec", 0, "8bbb8fce-308b-4822-97e1-5741fc955a90", "admin@example.com", false, false, null, "ADMIN@EXAMPLE.COM", "ADMIN", "AQAAAAIAAYagAAAAEENVY01/0BOrBai8zaioq9GOr+ftYIZhUBtulPtda1tTREUCOeVst9cnrB7Ogz4Bsg==", null, false, "5a1e1053-690e-4610-ab66-7a86fe2e04c8", null, false, "admin" }); + + migrationBuilder.InsertData( + table: "AspNetUserRoles", + columns: new[] { "RoleId", "UserId" }, + values: new object[] { "24edc3d6-bf9c-41a1-9371-224e4419ccb0", "d42006bc-7f69-4aa4-b247-eb9e2abfe0ec" }); + migrationBuilder.CreateIndex( name: "IX_AspNetRoleClaims_RoleId", table: "AspNetRoleClaims", diff --git a/Migrations/ApplicationDbContextModelSnapshot.cs b/Migrations/ApplicationDbContextModelSnapshot.cs index 38f10ea..be690de 100644 --- a/Migrations/ApplicationDbContextModelSnapshot.cs +++ b/Migrations/ApplicationDbContextModelSnapshot.cs @@ -88,6 +88,24 @@ namespace BackendPIA.Migrations .HasDatabaseName("UserNameIndex"); b.ToTable("AspNetUsers", (string)null); + + b.HasData( + new + { + Id = "d42006bc-7f69-4aa4-b247-eb9e2abfe0ec", + AccessFailedCount = 0, + ConcurrencyStamp = "8bbb8fce-308b-4822-97e1-5741fc955a90", + Email = "admin@example.com", + EmailConfirmed = false, + LockoutEnabled = false, + NormalizedEmail = "ADMIN@EXAMPLE.COM", + NormalizedUserName = "ADMIN", + PasswordHash = "AQAAAAIAAYagAAAAEENVY01/0BOrBai8zaioq9GOr+ftYIZhUBtulPtda1tTREUCOeVst9cnrB7Ogz4Bsg==", + PhoneNumberConfirmed = false, + SecurityStamp = "5a1e1053-690e-4610-ab66-7a86fe2e04c8", + TwoFactorEnabled = false, + UserName = "admin" + }); }); modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRole", b => @@ -114,6 +132,15 @@ namespace BackendPIA.Migrations .HasDatabaseName("RoleNameIndex"); b.ToTable("AspNetRoles", (string)null); + + b.HasData( + new + { + Id = "24edc3d6-bf9c-41a1-9371-224e4419ccb0", + ConcurrencyStamp = "24edc3d6-bf9c-41a1-9371-224e4419ccb0", + Name = "Administrator", + NormalizedName = "ADMINISTRATOR" + }); }); modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim<string>", b => @@ -201,6 +228,13 @@ namespace BackendPIA.Migrations b.HasIndex("RoleId"); b.ToTable("AspNetUserRoles", (string)null); + + b.HasData( + new + { + UserId = "d42006bc-7f69-4aa4-b247-eb9e2abfe0ec", + RoleId = "24edc3d6-bf9c-41a1-9371-224e4419ccb0" + }); }); modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken<string>", b => diff --git a/Models/ApplicationDbContext.cs b/Models/ApplicationDbContext.cs index a6a63a8..d2b8d26 100644 --- a/Models/ApplicationDbContext.cs +++ b/Models/ApplicationDbContext.cs @@ -2,6 +2,7 @@ using System; using System.Collections.Generic; using System.Text; using Microsoft.AspNetCore.Identity.EntityFrameworkCore; +using Microsoft.AspNetCore.Identity; using Microsoft.EntityFrameworkCore; namespace BackendPIA.Models { @@ -10,6 +11,21 @@ namespace BackendPIA.Models { protected override void OnModelCreating(ModelBuilder builder) { base.OnModelCreating(builder); + Guid user_id = Guid.NewGuid(); + Guid role_id = Guid.NewGuid(); + var hasher = new PasswordHasher<UserAccount>(); + UserAccount user_seed = new UserAccount { Id = user_id.ToString(), UserName = "admin", Email = "admin@example.com", + NormalizedEmail = "ADMIN@EXAMPLE.COM", NormalizedUserName = "ADMIN" }; + // TODO: save the seeded admin password in a user secret. + user_seed.PasswordHash = hasher.HashPassword(user_seed, "admin_password"); + builder.Entity<UserAccount>().HasData(user_seed); + builder.Entity<IdentityRole>().HasData(new IdentityRole { + Name = "Administrator", + NormalizedName = "ADMINISTRATOR", + Id = role_id.ToString(), + ConcurrencyStamp = role_id.ToString() + }); + builder.Entity<IdentityUserRole<string>>().HasData(new IdentityUserRole<string> { UserId = user_id.ToString(), RoleId = role_id.ToString() }); } } } |