コード例 #1
0
ファイル: UserController.cs プロジェクト: zuTTers/MyLittleCMS
        public ActionResult CreateUser()
        {
            MembershipEditViewModel userVM = new MembershipEditViewModel();

            userVM.Roles = _membershipService.GetAllRoles();
            return(View(userVM));
        }
コード例 #2
0
        public ActionResult Create(MembershipEditViewModel u)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    MembershipCreateStatus mStatus;

                    var userName = u.UserName;

                    var newUser = Membership.CreateUser(
                        userName,
                        u.Password,
                        u.Email,
                        null,
                        null,
                        u.IsApproved,
                        out mStatus
                        );

                    if (mStatus == MembershipCreateStatus.Success && newUser != null)
                    {
                        if (newUser.Comment != u.Comment)
                        {
                            newUser.Comment = u.Comment;
                            Provider.UpdateUser(newUser);
                        }

                        HandleRoles(u);

                        AddFlashMessage(string.Format("User '{0}' successfully created", userName), FlashMessageType.Success);

                        return(RedirectToAction("Edit", new { id = newUser.ProviderUserKey }));
                    }

                    var status = GetMembershipCreateStatusMessage(mStatus);

                    AddFlashMessage(
                        string.Format("An error occurred during user creation : {0}", status),
                        FlashMessageType.Error
                        );
                }
                catch (Exception ex)
                {
                    Logger.ErrorException("An error occurred", ex);
                    AddFlashMessage("An error occurred during user creation", FlashMessageType.Error);
                }
            }
            else
            {
                DebugModelStateErrors();

                AddFlashMessage("Unable to create user with provided values, please correct errors", FlashMessageType.Warning);
            }

            u.Roles = u.Roles ?? new string[] { };

            return(View(u));
        }
コード例 #3
0
ファイル: UserController.cs プロジェクト: zuTTers/MyLittleCMS
        public ActionResult CreateUser(MembershipEditViewModel membershipEditViewModel)
        {
            if (ModelState.IsValid)
            {
                if (membershipEditViewModel.Password.Length > 5)
                {
                    if (membershipEditViewModel.Password != membershipEditViewModel.PasswordAgain)
                    {
                        ModelState.AddModelError("PasswordAgain", "passwords must equal!");
                        membershipEditViewModel.Roles = _membershipService.GetAllRoles();
                        return(View(membershipEditViewModel));
                    }
                }
                else
                {
                    ModelState.AddModelError("Password", "password length  least 6 digit!");
                    membershipEditViewModel.Roles = _membershipService.GetAllRoles();
                    return(View(membershipEditViewModel));
                }

                if (membershipEditViewModel.Password != membershipEditViewModel.PasswordAgain)
                {
                    ModelState.AddModelError("PasswordAgain", "passwords must equal!");
                    membershipEditViewModel.Roles = _membershipService.GetAllRoles();
                    return(View(membershipEditViewModel));
                }
                if (_membershipService.GetUserByName(membershipEditViewModel.UserName) != null)
                {
                    ModelState.AddModelError(string.Empty, "Username already exists.");
                    return(View(membershipEditViewModel));
                }
                if (_membershipService.GetUserByEmail(membershipEditViewModel.Email) != null)
                {
                    ModelState.AddModelError(string.Empty, "Email already exists.");
                    return(View(membershipEditViewModel));
                }
                _membershipService.AddUser(new MyLittleCMS.Core.Domain.Entities.MembershipUser
                {
                    Email                = membershipEditViewModel.Email,
                    IsApproved           = true,
                    IsDeleted            = false,
                    PasswordHashed       = Utilies.Helper.GetHashedString(membershipEditViewModel.Password),
                    UserName             = membershipEditViewModel.UserName,
                    MembershipUserRoleId = membershipEditViewModel.UserRole.Value
                });
                return(RedirectToAction("Index"));
            }

            membershipEditViewModel.Roles = _membershipService.GetAllRoles();
            return(View(membershipEditViewModel));
        }
コード例 #4
0
        public ActionResult Edit(MembershipEditViewModel u)
        {
            var username = u.UserName;
            var mem      = Membership.GetUser(username);

            if (mem == null)
            {
                return(HttpNotFound(string.Format("User : {0} not found", username)));
            }

            try
            {
                if (!string.IsNullOrWhiteSpace(u.Password) && u.Password == u.PasswordConfirmation)
                {
                    mem.ChangePassword(mem.ResetPassword(), u.Password);
                }

                if (mem.Comment != u.Comment)
                {
                    mem.Comment = u.Comment;
                    Provider.UpdateUser(mem);
                }

                HandleRoles(u);

                AddFlashMessage("User successfully modified", FlashMessageType.Success);

                return(RedirectToAction("Index"));
            }
            catch (Exception ex)
            {
                AddFlashMessage("An error occurred during user modification", FlashMessageType.Error);
                Logger.ErrorException("An error occurred", ex);
            }

            u.ForEdit = true;
            return(View(u));
        }
コード例 #5
0
        /// <summary>
        /// When roles are enabled adds/removes roles
        /// </summary>
        /// <param name="u"><see cref="MembershipEditViewModel"/> to get the roles from</param>
        protected static void HandleRoles([NotNull] MembershipEditViewModel u)
        {
            if (u == null)
            {
                throw new ArgumentNullException("u");
            }

            if (!Roles.Enabled)
            {
                return;
            }

            var rolesForUser = Roles.GetRolesForUser(u.UserName);

            if (rolesForUser != null && rolesForUser.Length > 0)
            {
                Roles.RemoveUserFromRoles(u.UserName, rolesForUser);
            }

            if (u.Roles != null && u.Roles.Any())
            {
                Roles.AddUserToRoles(u.UserName, u.Roles.ToArray());
            }
        }