public ActionResult Create(UserCreateViewModel model)
        {
            if (!this.ModelState.IsValid)
            {
                return this.View(model);
            }

            var user = this.Mapper.Map<ApplicationUser>(model);
            this.users.AddUser(user, model.Password);

            this.TempData["Success"] = "Item created!";

            return this.RedirectToAction("Index");
        }
Esempio n. 2
0
        //public ActionResult Create([Bind(Include = "UserID,Username,Password,Salt,Email,IsEmailVerified,IsActive")] User user)
        public ActionResult Create([Bind(Include = "Username,Password,ConfirmPassword, Email")] UserCreateViewModel userVM)
        {
            if (db.Users.Any(u => u.Email == userVM.Email))
            {
                ModelState.AddModelError("Email", "Email in use");
            }

            if (db.Users.Any(u => u.Username == userVM.Username))
            {
                ModelState.AddModelError("Username", "Username in use");
            }

            //UserID,Salt,IsEmailVerified,IsActive;
            if (ModelState.IsValid)
            {
                User user = new User();
                user.Username = userVM.Username;
                //user.Password = userVM.Password;
                user.Email = userVM.Email;
                //user.Salt = BCryptHelper.GenerateSalt();
                string pwdToHash = userVM.Password + "*)&h9";
                user.Password = BCryptHelper.HashPassword(pwdToHash, BCryptHelper.GenerateSalt());

                //db.Users.Add(user);
                //db.SaveChanges();
                //try
                //{
                //    db.SaveChanges();
                //}
                //catch (DbUpdateException e)
                //{
                //    //if(e.InnerException.ToString().Contains("Cannot insert duplicate key row in object 'redxadmin.Users' with unique index 'IX_Email'"))
                //    if(db.Users.Any(u => u.Email == userVM.Email))
                //    {
                //        ModelState.AddModelError("Email", "Email in use");
                //    }
                //    //if (e.InnerException.ToString().Contains("Cannot insert duplicate key row in object 'redxadmin.Users' with unique index 'IX_Username'"))
                //    if(db.Users.Any(u => u.Username == userVM.Username))
                //    {
                //        ModelState.AddModelError("Username", "Username in use");
                //    }
                //    return View(userVM);
                //}
                FormsAuthentication.SetAuthCookie(userVM.Username, false);

                //MailMessage mMsg = new MailMessage("*****@*****.**", user.Email);
                //mMsg.Subject = "Account created";
                //mMsg.Body = "An account with username " + user.Username + " has been created on bookmarky.redx.rocks";
                //SmtpClient smtpClient = new SmtpClient();
                //smtpClient.Send(mMsg);
                //smtpClient.Dispose();

                db.Users.Add(user);
                db.SaveChanges();

                UserAuthToken uat = new UserAuthToken();
                uat.UserID     = user.UserID;
                uat.AuthToken  = BCryptHelper.GenerateSalt();
                uat.ExpireDate = DateTime.Now;

                db.UserAuthTokens.Add(uat);
                db.SaveChanges();

                return(RedirectToAction("Index", "Home"));
            }
            return(View(userVM));
        }
Esempio n. 3
0
 public GenericResponse <bool> Put(Guid id, [FromBody] UserCreateViewModel value)
 {
     throw new NotImplementedException();
 }
        //[Authorize(Policy = "Update Users")]
        public IActionResult Update(string id, [FromBody] UserCreateViewModel model)
        {
            // validate inputs.
            if (!string.IsNullOrWhiteSpace(model.Email))
            {
                // validate if user email can be updated.
                var emailUpdate = this.userService.CanUpdateEmail(model.Id, model.Email);
                if (!emailUpdate)
                {
                    // return 400 and message.
                    dynamic expando = new ExpandoObject();
                    expando.attribute = "email";
                    expando.message   = localizer["Email already exists"].Value;
                    var json = JsonConvert.SerializeObject(expando);
                    return(BadRequest(json));
                }
            }

            if (!string.IsNullOrWhiteSpace(model.UserName))
            {
                var usernameUpdate = this.userService.CanUpdateUsername(model.Id, model.UserName);

                if (!usernameUpdate)
                {
                    dynamic expando = new ExpandoObject();
                    expando.message = localizer["Username already exists"].Value;
                    var json = JsonConvert.SerializeObject(expando);
                    return(BadRequest(json));
                }
            }


            var userRoles = this.userService.GetUserRolesByUserId(model.Id);

            var selectedRoles   = model.Roles.Where(x => x.Check == true).ToList();
            var unselectedRoles = model.Roles.Where(x => x.Check == false).ToList();

            List <IdentityUserRole <string> > rolesToDelete    = new List <IdentityUserRole <string> >();
            List <IdentityUserRole <string> > newRolesToInsert = new List <IdentityUserRole <string> >();

            var roles = this.userService.GetAllRoles();

            // query against the universe of roles.
            foreach (var roleDb in roles)
            {
                foreach (var selectedRole in selectedRoles)
                {
                    if (roleDb.Id.Equals(selectedRole.Id))
                    {
                        var query = userRoles.Where(x => x.RoleId.Equals(selectedRole.Id)).SingleOrDefault();

                        if (query == null)
                        {
                            // add
                            newRolesToInsert.Add(new IdentityUserRole <string> {
                                UserId = model.Id, RoleId = selectedRole.Id
                            });
                        }
                    }
                }
            }

            // roles to delete.
            foreach (var userRole in userRoles)
            {
                foreach (var unselectedRole in unselectedRoles)
                {
                    if (userRole.RoleId.Equals(unselectedRole.Id))
                    {
                        // roles to delete.
                        rolesToDelete.Add(new IdentityUserRole <string> {
                            UserId = model.Id, RoleId = userRole.RoleId
                        });
                    }
                }
            }

            this.userService.UpdateUserRoles(newRolesToInsert, rolesToDelete);
            this.userService.UpdateUserInfo(model.Id, model.Name, model.UserName, model.Email);

            // taken from https://docs.microsoft.com/en-us/aspnet/core/tutorials/first-web-api
            return(new NoContentResult());
        }
        public ActionResult Create()
        {
            var model = new UserCreateViewModel();

            return(View("_CreateUserPartial", model));
        }
Esempio n. 6
0
        public ActionResult Create()
        {
            var viewModel = new UserCreateViewModel(thisOne: true);

            return(View(viewModel));
        }
        public ActionResult CreatePOST(UserCreateViewModel createModel)
        {
            if (!Services.Authorizer.Authorize(Permissions.ManageUsers, T("Not authorized to manage users")))
            {
                return(new HttpUnauthorizedResult());
            }

            if (!string.IsNullOrEmpty(createModel.UserName))
            {
                if (!_userService.VerifyUserUnicity(createModel.UserName, createModel.Email))
                {
                    AddModelError("NotUniqueUserName", T("User with that username and/or email already exists."));
                }
            }

            if (!Regex.IsMatch(createModel.Email ?? "", UserPart.EmailPattern, RegexOptions.IgnoreCase))
            {
                // http://haacked.com/archive/2007/08/21/i-knew-how-to-validate-an-email-address-until-i.aspx
                ModelState.AddModelError("Email", T("You must specify a valid email address."));
            }

            if (createModel.Password != createModel.ConfirmPassword)
            {
                AddModelError("ConfirmPassword", T("Password confirmation must match"));
            }

            var user = Services.ContentManager.New <IUser>("User");

            if (ModelState.IsValid)
            {
                user = _membershipService.CreateUser(new CreateUserParams(
                                                         createModel.UserName,
                                                         createModel.Password,
                                                         createModel.Email,
                                                         null, null, true));
            }

            var model = Services.ContentManager.UpdateEditor(user, this);

            if (!ModelState.IsValid)
            {
                Services.TransactionManager.Cancel();

                var editor = Shape.EditorTemplate(TemplateName: "Parts/User.Create", Model: createModel, Prefix: null);
                editor.Metadata.Position = "2";
                model.Content.Items.Insert(0, editor);

                return(View(model));
            }

            RouteValueDictionary activityStreamRouteValues = new RouteValueDictionary();

            activityStreamRouteValues.Add("action", "Display");
            activityStreamRouteValues.Add("controller", "User");
            activityStreamRouteValues.Add("area", "orchard.crm.Project");
            activityStreamRouteValues.Add("userId", user.Id);

            string changeDescription = string.Format(CultureInfo.CurrentUICulture, "Creates new user '{0}'", CRMHelper.GetFullNameOfUser(user));

            this.activityStreamService.WriteChangesToStreamActivity(Services.WorkContext.CurrentUser.Id, user.Id, user.ContentItem.VersionRecord.Id, new ActivityStreamChangeItem[] { }, changeDescription, activityStreamRouteValues);

            string actionName = this.crmContentOwnershipService.IsOperator(user.Id) ? "Operators" : "Customers";

            return(RedirectToAction(actionName, new { Controller = "User", area = "Orchard.CRM.Project" }));
        }
Esempio n. 8
0
        public IActionResult Create(UserCreateViewModel model)
        {
            var response = ResponseModelFactory.CreateInstance;

            if (model.LoginName.Trim().Length <= 0)
            {
                response.SetFailed("请输入登录名称");
                return(Ok(response));
            }
            using (_dbContext)
            {
                if (_dbContext.SystemUser.Count(x => x.LoginName == model.LoginName) > 0)
                {
                    response.SetFailed("登录名已存在");
                    return(Ok(response));
                }
                if (_dbContext.SystemUser.Count(x => x.UserIdCard == model.UserIdCard) > 0)
                {
                    response.SetFailed("身份证号已存在");
                    return(Ok(response));
                }
                var entity = _mapper.Map <UserCreateViewModel, SystemUser>(model);
                entity.AddTime        = DateTime.Now.ToString("yyyy-MM-dd");
                entity.SystemUserUuid = Guid.NewGuid();
                var rolename = _dbContext.SystemRole.FirstOrDefault(x => x.SystemRoleUuid == model.SystemRoleUuid);
                entity.SystemRoleUuid = rolename.SystemRoleUuid.ToString();//用户角色uuid
                if (rolename.RoleName == "超级管理员")
                {
                    entity.UserType = 0;
                }
                else
                {
                    entity.UserType = 1;
                }

                entity.PassWord = Haikan3.Utils.DesEncrypt.Encrypt(model.PassWord.Trim(), MdDesEncrypt.SecretKey);
                _dbContext.SystemUser.Add(entity);
                int res = _dbContext.SaveChanges();
                if (res > 0)
                {
                    ToLog.AddLog("添加", "成功:添加:系统用户信息一条数据", _dbContext);
                }

                _dbContext.Database.ExecuteSqlRaw("DELETE FROM SystemUserRoleMapping WHERE SystemUserUUID={0}", entity.SystemUserUuid);
                var roles = new SystemUserRoleMapping();
                roles.SystemUserUuid = entity.SystemUserUuid;
                roles.SystemRoleUuid = (Guid)model.SystemRoleUuid;
                roles.AddTime        = DateTime.Now.ToString("yyyy-MM-dd");
                roles.AddPeople      = AuthContextService.CurrentUser.DisplayName;
                var success = true;
                _dbContext.SystemUserRoleMapping.AddRange(roles);
                success = _dbContext.SaveChanges() > 0;
                if (success)
                {
                    response.SetSuccess();
                }
                else
                {
                    _dbContext.Database.ExecuteSqlRaw("DELETE FROM SystemUser WHERE SystemUserUUID={0}", entity.SystemUserUuid);
                    response.SetFailed("保存用户角色数据失败");
                }
                response.SetSuccess();
                return(Ok(response));
            }
        }
Esempio n. 9
0
        public IActionResult Create(UserCreateViewModel model)
        {
            var response = ResponseModelFactory.CreateInstance;

            if (model.LoginName.Trim().Length <= 0)
            {
                response.SetFailed("请输入登录名称");
                return(Ok(response));
            }
            using (_dbContext)
            {
                //if (_dbContext.SystemUser.Count(x => x.LoginName == model.LoginName) > 0)
                //{
                //    response.SetFailed("登录名已存在");
                //    return Ok(response);
                //}
                if (model.UserIdCard != null && model.UserIdCard != "")
                {
                    if (_dbContext.SystemUser.Count(x => x.UserIdCard == model.UserIdCard) > 0)
                    {
                        response.SetFailed("身份证号已存在");
                        return(Ok(response));
                    }
                }
                if (model.SystemRoleUuid == null && model.SystemRoleUuid.ToString() == "")
                {
                    response.SetFailed("请选择角色");
                    return(Ok(response));
                }

                if (ConfigurationManager.HaikanPassport_IfUse)
                {
                    bool checkregister = false;

                    var obj = SyncInformation.CheckUserName(model.LoginName);
                    if (int.Parse(obj) > 0)
                    {
                        var cum = SyncInformation.CheckUserMail(model.OldCard);
                        if (int.Parse(cum) > 0)
                        {
                            //var cur = SyncInformation.CheckUserRegister(model.LoginName, model.OldCard);
                            var ru = SyncInformation.RegisterUser(model.LoginName, model.PassWord.Trim(), model.OldCard);
                            if (ru == "999")
                            {
                                checkregister = true;
                            }
                            else
                            {
                                if (ru == "-888")
                                {
                                    response.SetFailed("系统禁止注册中文用户名");
                                    return(Ok(response));
                                }
                                if (ru == "-999")
                                {
                                    response.SetFailed("当前禁止注册新用户");
                                    return(Ok(response));
                                }
                            }
                        }
                        else
                        {
                            if (cum == "-4")
                            {
                                response.SetFailed("Email 格式有误");
                                return(Ok(response));
                            }
                            if (cum == "-5")
                            {
                                response.SetFailed("Email 不允许注册");
                                return(Ok(response));
                            }
                            if (cum == "-6")
                            {
                                response.SetFailed("Email 已经被注册");
                                return(Ok(response));
                            }
                        }
                    }
                    else
                    {
                        if (obj == "-1")
                        {
                            response.SetFailed("用户名不合法");
                            return(Ok(response));
                        }
                        if (obj == "-2")
                        {
                            response.SetFailed("用户名包含不允许注册的词语");
                            return(Ok(response));
                        }
                        if (obj == "-3")
                        {
                            response.SetFailed("用户名已经存在");
                            return(Ok(response));
                        }
                    }
                    if (!checkregister)
                    {
                        response.SetFailed("用户统一身份注册失败");
                        return(Ok(response));
                    }
                }



                var entity = _mapper.Map <UserCreateViewModel, SystemUser>(model);
                entity.AddTime        = DateTime.Now.ToString("yyyy-MM-dd");
                entity.SystemUserUuid = Guid.NewGuid();
                entity.IsDeleted      = 0;
                entity.LoginName      = model.LoginName;
                entity.RealName       = model.RealName;
                //entity.PassWord = Haikan3.Utils.DesEncrypt.Encrypt(model.PassWord.Trim(), MdDesEncrypt.SecretKey);
                entity.PassWord       = Security.GenerateMD5(model.PassWord.Trim());
                entity.SystemRoleUuid = model.SystemRoleUuid.ToString();
                entity.UserIdCard     = model.UserIdCard;
                entity.OldCard        = model.OldCard;
                var rolename = _dbContext.SystemRole.FirstOrDefault(x => x.RoleName == "超级管理员");
                if (model.SystemRoleUuid.ToString().Contains(rolename.SystemRoleUuid.ToString()))
                {
                    entity.UserType = 0;
                }
                else
                {
                    entity.UserType = 2;
                }
                _dbContext.SystemUser.Add(entity);
                _dbContext.SaveChanges();


                //entity.SystemRoleUuid = "";
                //entity.PassWord = Haikan3.Utils.DesEncrypt.Encrypt(model.PassWord.Trim(), MdDesEncrypt.SecretKey);
                //for (int i = 0; i < model.SystemRoleUuid.Count; i++)
                //{
                //    entity.SystemRoleUuid += model.SystemRoleUuid[i] + ",";
                //}
                //entity.SystemRoleUuid = entity.SystemRoleUuid.TrimEnd(',');
                //entity.OldCard = model.OldCard;
                //entity.Phone = model.Phone;
                //_dbContext.SystemUser.Add(entity);
                //_dbContext.SaveChanges();

                _dbContext.Database.ExecuteSqlCommand("DELETE FROM SystemUserRoleMapping WHERE SystemUserUUID={0}", entity.SystemUserUuid);
                var success = true;
                if (model.SystemRoleUuid != null)
                {
                    var roles = new SystemUserRoleMapping();
                    roles.SystemUserUuid = entity.SystemUserUuid;
                    roles.SystemRoleUuid = model.SystemRoleUuid.Value;
                    roles.AddTime        = DateTime.Now.ToString("yyyy-MM-dd");
                    roles.AddPeople      = AuthContextService.CurrentUser.DisplayName;

                    _dbContext.SystemUserRoleMapping.Add(roles);
                }
                success = _dbContext.SaveChanges() > 0;
                if (success)
                {
                    response.SetSuccess();
                }
                else
                {
                    _dbContext.Database.ExecuteSqlCommand("DELETE FROM SystemUser WHERE SystemUserUUID={0}", entity.SystemUserUuid);
                    response.SetFailed("保存用户角色数据失败");
                }
                return(Ok(response));
            }
        }
Esempio n. 10
0
 public void Add(UserCreateViewModel userCreateViewModel)
 {
     _userRepository.Save(new User(userCreateViewModel));
 }