Example #1
0
        public ActionResult Index(RegisterViewModel model)
        {
            if (ModelState.IsValid)
            {
                UIUserCreateStatus   status;
                IEnumerable <string> errors = Enumerable.Empty <string>();
                var result = UIUserProvider.CreateUser(model.Username, model.Password, model.Email, null, null, true, out status, out errors);
                if (status == UIUserCreateStatus.Success)
                {
                    UIRoleProvider.CreateRole(AdminRoleName);
                    UIRoleProvider.AddUserToRoles(result.Username, new string[] { AdminRoleName });

                    if (ProfileManager.Enabled)
                    {
                        var profile = EPiServerProfile.Wrap(ProfileBase.Create(result.Username));
                        profile.Email = model.Email;
                        profile.Save();
                    }

                    AdministratorRegistrationPage.IsEnabled = false;
                    SetFullAccessToWebAdmin();
                    var resFromSignIn = UISignInManager.SignIn(UIUserProvider.Name, model.Username, model.Password);
                    if (resFromSignIn)
                    {
                        return(Redirect(UrlResolver.Current.GetUrl(ContentReference.StartPage)));
                    }
                }
                AddErrors(errors);
            }
            // If we got this far, something failed, redisplay form
            return(View(model));
        }
        public ActionResult Index(RegisterViewModel model)
        {
            if (ModelState.IsValid)
            {
                UIUserCreateStatus   status;
                IEnumerable <string> errors = Enumerable.Empty <string>();
                var result = _UIUserProvider.CreateUser(model.Username, model.Password, model.Email, null, null, true, out status, out errors);
                if (status == UIUserCreateStatus.Success)
                {
                    //Check if role exists, if it does not create it and set full permission to all pages of the site
                    SetFullAccessToRole(AdminRoleName);

                    //Add the newly created user to the role.
                    _UIRoleProvider.AddUserToRoles(result.Username, new string[] { AdminRoleName });

                    if (ProfileManager.Enabled)
                    {
                        var profile = EPiServerProfile.Wrap(ProfileBase.Create(result.Username));
                        profile.Email = model.Email;
                        profile.Save();
                    }

                    //After user creation, sign-in the user account and redirect to Episerver CMS
                    var resFromSignIn = _UISignInManager.SignIn(_UIUserProvider.Name, model.Username, model.Password);
                    if (resFromSignIn)
                    {
                        return(Redirect("/episerver/cms"));
                    }
                }
                AddErrors(errors);
            }
            // If we got this far, something failed, redisplay form
            return(View(_ViewPath, model));
        }