From 7206bca7d45e9662e4fb58525408513eee62edab Mon Sep 17 00:00:00 2001 From: Michael Date: Fri, 24 Mar 2017 20:31:57 -0400 Subject: [PATCH] Admin controller supports generation of new users. --- Project-Unite/Controllers/AdminController.cs | 50 ++++++++++++++++++++ Project-Unite/Models/AdminViewModels.cs | 8 ++++ 2 files changed, 58 insertions(+) diff --git a/Project-Unite/Controllers/AdminController.cs b/Project-Unite/Controllers/AdminController.cs index f8983d2..2e64095 100644 --- a/Project-Unite/Controllers/AdminController.cs +++ b/Project-Unite/Controllers/AdminController.cs @@ -55,6 +55,56 @@ namespace Project_Unite.Controllers } + public ActionResult CreateUser() + { + return View(new CreateUserModel()); + } + + [HttpPost] + [ValidateAntiForgeryToken] + public ActionResult CreateUser(CreateUserModel model) + { + var db = new ApplicationDbContext(); + + var user = new ApplicationUser(); + user.AccessFailedCount = 0; + user.BannedAt = DateTime.Now; + user.Bio = ""; + user.Codepoints = 0; + user.DisplayName = model.Username; + user.Email = model.Email; + user.EmailConfirmed = true; + user.FullName = ""; + user.Hobbies = ""; + user.Id = Guid.NewGuid().ToString(); + user.IsBanned = false; + user.IsMuted = false; + user.IsPatreon = false; + user.JoinedAt = DateTime.Now; + user.LastKnownIPAddress = "127.0.0.1"; + user.LastLogin = DateTime.Now; + user.LastMonthPaid = 0; + user.LockoutEnabled = false; + user.MajorVersion = 1; + user.MinorVersion = 0; + user.MutedAt = DateTime.Now; + user.PasswordHash = "ResetYourPassword."; + user.PhoneNumberConfirmed = false; + user.Revision = 0; + user.SecurityStamp = Guid.NewGuid().ToString(); + user.ShiftnetSubscription = 0; + user.StoryPosition = 0; + user.TwoFactorEnabled = false; + user.UserName = model.Email; + + db.Users.Add(user); + + db.SaveChanges(); + var uman = HttpContext.GetOwinContext().GetUserManager(); + uman.AddToRole(user.Id, ACL.LowestPriorityRole().Name); + return RedirectToAction("Users"); + } + public void DeleteTopic(ForumTopic topic) { foreach(var post in topic.Posts.ToArray()) diff --git a/Project-Unite/Models/AdminViewModels.cs b/Project-Unite/Models/AdminViewModels.cs index 56edbdd..7a24aec 100644 --- a/Project-Unite/Models/AdminViewModels.cs +++ b/Project-Unite/Models/AdminViewModels.cs @@ -28,6 +28,14 @@ namespace Project_Unite.Models public List ACLList { get; set; } } + public class CreateUserModel + { + + public string Email { get; set; } + public string Username { get; set; } + + } + public class AddForumCategoryViewModel { public string Name { get; set; }