コード例 #1
0
        public ActionResult RegisterAdmin(CreateUserRoleViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View());
            }

            var salt = CreateSHAHash(model.Password);

            model.Password        = salt;
            model.ConfirmPassword = salt;

            if (ModelState.IsValid)
            {
                using (ContactsDbContext db = new ContactsDbContext())
                {
                    var user = db.RoleModel.FirstOrDefault(u => u.UserName == model.UserName || u.FullName == model.FullName || u.Email == model.Email);
                    if (user != null)
                    {
                        ModelState.AddModelError("", "Username or email already exists");
                    }

                    else
                    {
                        db.RoleModel.Add(model);
                        db.SaveChanges();
                        ModelState.Clear();
                    }
                }
            }

            return(View());
        }
コード例 #2
0
        public async Task <IActionResult> Create(CreateUserRoleViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var _user = await _userManager.FindByIdAsync(model.UserId);

            var _role = _roleRepository.EntityItems.Where(x => x.Id == model.RoleSelect).FirstOrDefault().Name;

            //若该角色不存在
            if (!(await _roleManager.RoleExistsAsync(_role)))
            {
                //TODO:StatusMessage 该角色不存在
                return(RedirectToAction(nameof(Create), new { model.UserId }));
            }

            IdentityResult result = null;

            //判断用户是否已经属于指定角色
            if (!(await _userManager.IsInRoleAsync(_user, _role)))
            {
                StatusMessage = $"您已成功将该用户加入角色{_role}";
                result        = await _userManager.AddToRoleAsync(_user, _role);
            }

            if (!result.Succeeded)
            {
                ModelState.AddModelError("", result.Errors.First().ToString());
                return(RedirectToAction(nameof(Create), new { model.UserId }));
            }

            return(RedirectToAction(nameof(Create), new { model.UserId }));
        }
コード例 #3
0
        public ActionResult RemoveConfirmed(int?id)
        {
            CreateUserRoleViewModel userLogin = db.RoleModel.Find(id);

            db.RoleModel.Remove(userLogin);
            db.SaveChanges();
            return(RedirectToAction("RegisteredUsers", "Account"));
        }
コード例 #4
0
        public async Task <IActionResult> Create(CreateUserRoleViewModel userRoleViewModel)
        {
            var user = new ApplicationUser();

            user.UserName         = userRoleViewModel.Email;
            user.Email            = userRoleViewModel.Email;
            user.isFirstLogin     = true;
            user.TwoFactorEnabled = false;
            //  user.EmailConfirmed = true;
            string         password = userRoleViewModel.Password;
            IdentityResult chkUser  = await _userManager.CreateAsync(user, password);

            if (chkUser.Succeeded)
            {
                var token = await _userManager.GenerateEmailConfirmationTokenAsync(user);


                var confirmationLink = Url.Page("/Account/ConfirmEmail", pageHandler: null, values: new { area = "Identity", userId = user.Id, token }, protocol: Request.Scheme);
                if (userRoleViewModel.IsSuperAdmin)
                {
                    var addToRole = await _userManager.AddToRoleAsync(user, UserRolesConst.SuperAdmin);
                }
                else
                {
                    var addToRole = await _userManager.AddToRoleAsync(user, UserRolesConst.ContentManager);
                }
                await _emailSender.SendEmailAsync(user.Email, user.UserName, "Confirm your email",
                                                  $"Please confirm your account by <a href='{HtmlEncoder.Default.Encode(confirmationLink)}'>clicking here</a>.");

                await _emailSender.SendEmailAsync(user.Email, user.UserName,
                                                  "Email Account", "Please Check Your Email Confirmation Credential <br><br>" + "Email: "
                                                  + user.Email + "<br><br>" + "Password: <b>" + password + "</b>" + "<br><br> <b>Please Reset Your Password</b><br> Thanks");

                _logger.LogInformation(user.Email + " Was Created" + " by Super Admin" + " and two emails sent to " + user.Email);
                _toastNotification.AddSuccessToastMessage(user.Email + " Created Successfully");

                _eventLogger.LogInfoEvent(HttpContext.User.Identity.Name, Common.ActivityEnum.Add, "Super Admin > User Managment > Add", user.Email + " Created Successfully");

                if (!userRoleViewModel.IsSuperAdmin)
                {
                    AddDefaultConfig(user.Id);
                }

                return(RedirectToAction("Index", "Home"));
            }
            else
            {
                foreach (IdentityError error in chkUser.Errors)
                {
                    ModelState.AddModelError(string.Empty, error.Description);
                }
            }
            ViewBag.Roles = _roleManager.Roles.ToList();
            return(View());
        }
コード例 #5
0
        public async Task <UserManagerResponse> CreateUserRoleAsync(CreateUserRoleViewModel model)
        {
            var role = await roleManager.FindByIdAsync(model.RoleId);

            if (role == null)
            {
                return(new UserManagerResponse
                {
                    Message = "Role does not exist",
                    IsSuccess = false
                });
            }

            var user = await userManager.FindByIdAsync(model.UserId);

            if (role == null)
            {
                return(new UserManagerResponse
                {
                    Message = "user does not exist",
                    IsSuccess = false
                });
            }

            if (await userManager.IsInRoleAsync(user, role.Name))
            {
                return(new UserManagerResponse
                {
                    Message = "user has role already",
                    IsSuccess = false
                });
            }

            var result = await userManager.AddToRoleAsync(user, role.Name);

            if (result.Succeeded)
            {
                return(new UserManagerResponse
                {
                    Message = "Role assigned",
                    IsSuccess = true
                });
            }

            return(new UserManagerResponse
            {
                Message = "something went wrong",
                IsSuccess = false
            });
        }
コード例 #6
0
        public async Task <IActionResult> CreateUserRolenAsync([FromBody] CreateUserRoleViewModel model)
        {
            if (ModelState.IsValid)
            {
                var result = await userService.CreateUserRoleAsync(model);

                if (result.IsSuccess)
                {
                    return(Ok(result));
                }

                return(BadRequest(result));
            }
            return(BadRequest("Some properties are not valid"));
        }
コード例 #7
0
        public async Task <UserManagerResponse> CreateUserRoleAsync(CreateUserRoleViewModel model)
        {
            var role = await roleManager.FindByIdAsync(model.RoleId);

            if (role == null)
            {
                return(new UserManagerResponse
                {
                    Message = "Rol no existe",
                    IsSuccess = false
                });
            }
            var user = await userManager.FindByIdAsync(model.UserId);

            if (role == null)
            {
                return(new UserManagerResponse
                {
                    Message = "Usuario no existe",
                    IsSuccess = false
                });
            }

            if (await userManager.IsInRoleAsync(user, role.Name))
            {
                return(new UserManagerResponse
                {
                    Message = "El usuario ya cuenta con un rol",
                    IsSuccess = false
                });
            }

            var result = await userManager.AddToRoleAsync(user, role.Name);

            if (result.Succeeded)
            {
                return(new UserManagerResponse
                {
                    Message = "rol asignado exitosamente",
                    IsSuccess = true
                });
            }
            return(new UserManagerResponse
            {
                Message = "algo salio mal",
                IsSuccess = false
            });
        }
コード例 #8
0
        public IActionResult Create(string UserId)
        {
            var model = new CreateUserRoleViewModel
            {
                StatusMessage        = StatusMessage,
                UserId               = UserId,
                RoleSelectViewModels = _roleRepository.EntityItems.Select(x => new RoleSelectViewModel
                {
                    Id          = x.Id,
                    Name        = x.Name,
                    Description = x.Description
                }).ToList()
            };

            return(View(model));
        }
コード例 #9
0
        // GET: Account/Delete/5
        public ActionResult Remove(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            CreateUserRoleViewModel usersLogin = db.RoleModel.Find(id);

            if (usersLogin == null)
            {
                return(HttpNotFound());
            }

            return(View(usersLogin));
        }
コード例 #10
0
        public ActionResult Create(CreateUserRoleViewModel userRoleModel)
        {
            var model         = userRoleModel.UserModel;
            var selectedRoles = userRoleModel.Roles;

            if (ModelState.IsValid)
            {
                // Attempt to register the user
                MembershipCreateStatus createStatus;
                var user = MembershipUserExtended.CreateUser(model.UserName, model.Password, model.Email, model.FirstName, model.LastName, model.Title, model.HourlyRate, model.Address, model.City, model.State, model.Zip, model.Phone, out createStatus);

                if (createStatus == MembershipCreateStatus.Success)
                {
                    //Assign Users to Roles
                    if (selectedRoles.Any())
                    {
                        Roles.AddUserToRoles(user.UserName, selectedRoles.ToArray());
                    }
                    else
                    {
                        Roles.AddUserToRole(user.UserName, Roles.GetAllRoles().FirstOrDefault(c => c.ToLower().Equals("user")));
                    }


                    userRoleModel.UserModel = new CreateUserModel(user);
                    userRoleModel.Roles     = Roles.GetAllRoles().ToList();
                    //FormsAuthentication.SetAuthCookie(model.UserName, createPersistentCookie: false);
                    //return RedirectToAction("Index", "TimeTrack");
                    ModelState.AddModelError("", string.Format("User {0} created successfully", model.UserName));
                    return(View(userRoleModel));
                }
                else
                {
                    userRoleModel.Roles = Roles.GetAllRoles().ToList();
                    ModelState.AddModelError("", ErrorCodeToString(createStatus));
                }
            }
            else
            {
                userRoleModel.Roles = Roles.GetAllRoles().ToList();
            }

            // If we got this far, something failed, redisplay form
            return(View(userRoleModel));
        }
コード例 #11
0
        // GET: UserRoles/Create
        public ActionResult Create()
        {
            var model = new CreateUserRoleViewModel();

            model.userList = db.Users.ToList().OrderBy(item => item.UserName).Select(m => new SelectListItem
            {
                Value = m.Id.ToString(),
                Text  = m.UserName
            });

            model.rolesList = db.Roles.ToList().OrderBy(item => item.Name).Select(m => new SelectListItem
            {
                Value = m.Id.ToString(),
                Text  = m.Name
            });

            return(View(model));
        }
コード例 #12
0
        public ActionResult Create([Bind(Include = "UserId,RoleId")] CreateUserRoleViewModel cUserRoles)
        {
            if (ModelState.IsValid)
            {
                if (cUserRoles.RoleId == null)
                {
                    return(RedirectToAction("Index", new { Message = UserRolesMessageId.CreateRoleFail }));
                }

                UserRoles ur = null;

                foreach (var item in db.IdentityUserRoles.ToList())
                {
                    if (cUserRoles.UserId == item.UserId)
                    {
                        ur = new UserRoles
                        {
                            UserId = cUserRoles.UserId,
                            RoleId = cUserRoles.RoleId
                        };
                        break;
                    }
                }

                if (ur == null)
                {
                    ur = new UserRoles
                    {
                        UserId = cUserRoles.UserId,
                        RoleId = cUserRoles.RoleId
                    };

                    db.IdentityUserRoles.Add(ur);
                    db.SaveChanges();
                    return(RedirectToAction("Index"));
                }
                return(RedirectToAction("Index", new { Message = UserRolesMessageId.CreateUserRoleFail }));
            }

            return(View(cUserRoles));
        }
コード例 #13
0
        public async Task <IActionResult> CreateRole(CreateUserRoleViewModel model)
        {
            if (ModelState.IsValid)
            {
                IdentityRole identityRole = new IdentityRole
                {
                    Name = model.RoleName
                };
                IdentityResult result = await roleManager.CreateAsync(identityRole);

                if (result.Succeeded)
                {
                    return(RedirectToAction("ListRoles", "Administration"));
                }

                foreach (IdentityError error in result.Errors)
                {
                    ModelState.AddModelError("", error.Description);
                }
            }

            return(View(model));
        }
コード例 #14
0
        //this method creates a role
        public async Task <IActionResult> CreateRole(CreateUserRoleViewModel roleVm)
        {
            if (ModelState.IsValid)
            {
                var role = new IdentityRole()
                {
                    Name = roleVm.RoleName
                };
                var result = await _roleManager.CreateAsync(role);

                if (result.Succeeded)
                {
                    return(RedirectToAction("ListOfRoles", "Admin"));
                }

                foreach (var error in result.Errors)
                {
                    ModelState.AddModelError("", error.Description);
                }
            }

            return(View(roleVm));
        }
コード例 #15
0
        //
        // GET: /User/

        //
        // GET: /Account/Register

        //[Authorize(Roles = "SuperAdmin, Admin")]
        public ActionResult Create()
        {
            var model = new CreateUserRoleViewModel();

            return(View(model));
        }