From 27d92001c317c30297701300bfca002bd0ad3f1a Mon Sep 17 00:00:00 2001 From: jvyden Date: Wed, 1 Jun 2022 17:06:27 -0400 Subject: [PATCH] Create admin user on first startup --- ProjectLighthouse/StartupTasks.cs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/ProjectLighthouse/StartupTasks.cs b/ProjectLighthouse/StartupTasks.cs index 4e439aa6..caff91bc 100644 --- a/ProjectLighthouse/StartupTasks.cs +++ b/ProjectLighthouse/StartupTasks.cs @@ -9,6 +9,7 @@ using LBPUnion.ProjectLighthouse.Helpers; using LBPUnion.ProjectLighthouse.Logging; using LBPUnion.ProjectLighthouse.Logging.Loggers; using LBPUnion.ProjectLighthouse.Match.Rooms; +using LBPUnion.ProjectLighthouse.PlayerData.Profiles; using LBPUnion.ProjectLighthouse.Startup; using LBPUnion.ProjectLighthouse.StorableLists; using LBPUnion.ProjectLighthouse.Types; @@ -91,6 +92,22 @@ public static class StartupTasks RoomHelper.StartCleanupThread(); } + // Create admin user if no users exist + if (serverType == ServerType.Website && database.Users.CountAsync().Result == 0) + { + const string passwordClear = "lighthouse"; + string password = CryptoHelper.BCryptHash(CryptoHelper.Sha256Hash(passwordClear)); + + User admin = database.CreateUser("admin", password).Result; + admin.IsAdmin = true; + admin.PasswordResetRequired = true; + + database.SaveChanges(); + + Logger.Success("No users were found, so an admin user was created. " + + $"The username is 'admin' and the password is '{passwordClear}'.", LogArea.Startup); + } + stopwatch.Stop(); Logger.Success($"Ready! Startup took {stopwatch.ElapsedMilliseconds}ms. Passing off control to ASP.NET...", LogArea.Startup); }