예제 #1
0
        public async Task <ActionResult> CreateUser([Bind("Email,Name,Surname,Password,IsAdmin")] AdminCreateUserViewModel user)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    var dbUser = dbContext.Users.FirstOrDefault(u => u.Email == user.Email);
                    if (dbUser == null)
                    {
                        var userCreation = await Helpers.CreateUser(user.Email, user.Name, user.Surname, user.Password, userManager);

                        if (((IdentityResult)userCreation["Result"]).Succeeded)
                        {
                            User           newUser        = (User)userCreation["User"];
                            IdentityResult identityResult = await userManager.AddToRoleAsync(newUser, RolesRegistry.Normal);

                            if (user.IsAdmin)
                            {
                                identityResult = await userManager.AddToRoleAsync(newUser, RolesRegistry.Admin);
                            }
                        }
                        TempData["Message"] = "Yeni kullanıcı başırılı bir şekilde oluştutuldu.";
                        return(RedirectToAction(nameof(Index)));
                    }
                    ViewData["Error"] = "Bu eposta kullanılmaktadır.";
                }
                catch
                {
                    ViewData["Error"] = "Kullanıcı oluşturulamadı.";
                }
            }
            return(View(user));
        }
예제 #2
0
        public ActionResult Create()
        {
            var viewModel = new AdminCreateUserViewModel
            {
                Uloge = db.Roles.ToList()
            };

            return(View(viewModel));
        }
예제 #3
0
        public async Task <ActionResult> Create(AdminCreateUserViewModel model)
        {
            //用ModelState.IsValid属性检查所接收到的数据是否包含了我所需要的数据,
            //如果是,便创建一个AppUser类的新实例,并将它传递给UserManager.CreateAsync方法
            //使用异步的Identity方法让你的动作方法能够异步执行,这可以从整体上改善应用程序。
            if (ModelState.IsValid)
            {
                ApplicationUser user = new ApplicationUser {
                    UserName = model.Name, Email = model.Email
                };
                IdentityResult result = await UserManager.CreateAsync(user, model.Password);

                if (result.Succeeded)
                {
                    return(RedirectToAction("Index"));
                }
                else
                {
                    AddErrorsFromResult(result);
                }
            }
            return(View(model));
        }
예제 #4
0
        public ActionResult Create(AdminCreateUserViewModel viewModel)
        {
            if (ModelState.IsValid)
            {
                var userManager = Request.GetOwinContext().GetUserManager <ApplicationUserManager>();

                var user = new ApplicationUser
                {
                    Email    = viewModel.Register.Email,
                    UserName = viewModel.Register.Email
                };
                var result = userManager.Create(user, viewModel.Register.Password);
                if (result.Succeeded)
                {
                    var role = db.Roles.SingleOrDefault(r => r.Id == viewModel.UlogaId).Name;

                    userManager.AddToRole(user.Id, role);

                    return(RedirectToAction("Index", "Korisnici"));
                }
            }
            return(View(viewModel));
        }
예제 #5
0
 public ActionResult CreateNewUser(AdminCreateUserViewModel newuser)
 {
     admin.CreateUser(newuser);
     return(View());
 }
예제 #6
0
        public virtual async Task <Response> Create(AdminCreateUserViewModel model)
        {
            try
            {
                ApplicationUser user = new ApplicationUser
                {
                    UserName          = model.Username,
                    Email             = model.Email,
                    FirstName         = model.FirstName,
                    LastName          = model.LastName,
                    DisplayName       = model.DisplayName,
                    PhoneNumber       = model.Phone,
                    JobTitle          = model.JobTitle,
                    Anonymous         = model.Anonymous,
                    CreatedOn         = DateTime.UtcNow,
                    LastLogOn         = DateTime.UtcNow,
                    LastLoginLocation = HttpContext.Connection.RemoteIpAddress.ToString(),
                    LastLoginIP       = HttpContext.Connection.RemoteIpAddress.ToString()
                };
                user.AddUserNote(new UserNote()
                {
                    CreatedBy = User.GetLocalUserId(),
                    CreatedOn = DateTime.UtcNow,
                    Note      = $"User created via admin panel by {User.Identity.Name}."
                });
                IdentityResult result = await _account.CreateAsync(user, model.Password);

                if (!result.Succeeded)
                {
                    return(new Response(result.Errors));
                }

                if (model.CreateValidated)
                {
                    user.EmailConfirmed = true;
                    user.Active         = true;
                    await _account.UpdateUserAsync(user);
                }
                else
                {
                    if (!Engine.Settings.Account.RequireEmailConfirmation)
                    {
                        user.EmailConfirmed = true;
                    }
                }

                if (model.NotifyUser)
                {
                    // Send the email to the user, letting em know n' shit.
                    // Create the email content
                    try
                    {
                        MailObject message = new MailObject()
                        {
                            To        = new SendGrid.Helpers.Mail.EmailAddress(user.Email),
                            PreHeader = "You access information for " + Engine.Settings.Basic.FullTitle,
                            Subject   = "You account has been created."
                        };
                        message.AddH1("Account Created!");
                        message.AddParagraph("Your new account has been set up on the " + Engine.Settings.Basic.FullTitle + " website.");
                        message.AddParagraph("Name: <strong>" + user.ToInternalName() + "</strong>");
                        message.AddParagraph("Username: <strong>" + model.Username + "</strong>");
                        message.AddParagraph("Password: <strong>" + model.Password + "</strong>");
                        message.AddCallToAction("Log in here", ControllerContext.HttpContext.GetSiteUrl() + "/account/login", "#32bc4e", "center");
                        await _emailSender.SendEmailAsync(message);
                    }
                    catch (Exception)
                    {
                        // roll back!
                        ApplicationUser deleteUser = await _account.GetUserByEmailAsync(model.Email);

                        await _account.DeleteUserAsync(deleteUser.Id, User);

                        throw new Exception("There was a problem sending the email, ensure the site's email address and SendGrid settings are set up correctly before sending.");
                    }
                }
                await _logService.AddLogAsync <BaseUsersController>($"A new user account has been created in the admin area for {user.Email}", type : LogType.Success);

                return(new Response(true, "Successfully created."));
            }
            catch (Exception ex)
            {
                return(await ErrorResponseAsync <BaseUsersController>($"Error creating a user via the admin panel.", ex));
            }
        }