コード例 #1
0
        public ActionResult EditProfile(SmartWalkUserVm userVm)
        {
            if (_orchardServices.WorkContext.CurrentUser == null)
            {
                return(new HttpUnauthorizedResult());
            }

            _swUserService.UpdateCurrentUser(userVm);

            return(RedirectToAction("EditProfile"));
        }
コード例 #2
0
        public void UpdateCurrentUser(SmartWalkUserVm userVm)
        {
            if (CurrentUserPart == null)
            {
                throw new SecurityException("Current user is not available");
            }

            CurrentUserPart.FirstName = userVm.FirstName;
            CurrentUserPart.LastName  = userVm.LastName;

            Services.ContentManager.Publish(CurrentUserPart.ContentItem);
        }
コード例 #3
0
        public ActionResult Register(string userName, string email, string password, string confirmPassword,
                                     string returnUrl = null)
        {
            // ensure users can register
            var registrationSettings = _orchardServices.WorkContext.CurrentSite.As <RegistrationSettingsPart>();

            if (!registrationSettings.UsersCanRegister)
            {
                return(HttpNotFound());
            }

            ViewData["PasswordLength"] = MinPasswordLength;

            if (ValidateRegistration(userName, email, password, confirmPassword))
            {
                // Attempt to register the user
                // No need to report this to IUserEventHandler because _membershipService does that for us
                var userParams = new CreateUserParams(userName, password, email, null, null, false);
                var userData   = new SmartWalkUserVm();
                var user       = _swUserService.CreateUser(new SmartWalkUserParams(userParams, userData));

                _orchardServices.ContentManager.Create(user);

                if (user != null)
                {
                    if (user.As <UserPart>().EmailStatus == UserStatus.Pending)
                    {
                        var siteUrl = _orchardServices.WorkContext.CurrentSite.BaseUrl;
                        if (String.IsNullOrWhiteSpace(siteUrl))
                        {
                            siteUrl = HttpContext.Request.ToRootUrlString();
                        }

                        _userService.SendChallengeEmail(
                            user.As <UserPart>(),
                            nonce =>
                            Url.MakeAbsolute(
                                Url.Action(
                                    "ChallengeEmail",
                                    "Account",
                                    new { Area = "Orchard.Users", nonce }),
                                siteUrl));

                        _userEventHandler.SentChallengeEmail(user);
                        return(RedirectToAction(
                                   "ChallengeEmailSent",
                                   "Account",
                                   new { Area = "Orchard.Users" }));
                    }

                    if (user.As <UserPart>().RegistrationStatus == UserStatus.Pending)
                    {
                        return(RedirectToAction(
                                   "RegistrationPending",
                                   "Account",
                                   new { Area = "Orchard.Users" }));
                    }

                    _authenticationService.SignIn(user, false /* createPersistentCookie */);

                    return(this.RedirectLocal(returnUrl));
                }

                ModelState.AddModelError(
                    "_FORM",
                    T(ErrorCodeToString(/*createStatus*/ MembershipCreateStatus.ProviderError)));
            }

            // If we got this far, something failed, redisplay form
            var shape = _orchardServices.New.Register();

            return(new ShapeResult(this, shape));
        }
コード例 #4
0
 public SmartWalkUserParams(CreateUserParams userParams, SmartWalkUserVm userData)
 {
     UserParams = userParams;
     UserData   = userData;
 }