Updates last step of installer logic, we don't care about other providers as that would never have worked anyways

This commit is contained in:
Shannon
2014-02-20 14:38:00 +11:00
parent 606b5aa60a
commit d159792256
2 changed files with 20 additions and 35 deletions

View File

@@ -1,6 +1,7 @@
using System;
using System.Web.Security;
using Umbraco.Core.Configuration;
using Umbraco.Core.Logging;
using Umbraco.Core.Security;
using Umbraco.Web.Install;
using Umbraco.Web.Security;
@@ -29,24 +30,24 @@ namespace Umbraco.Web.UI.Install.Steps
}
}
protected void ChangePasswordClick(object sender, System.EventArgs e)
protected void ChangePasswordClick(object sender, EventArgs e)
{
Page.Validate();
if (Page.IsValid)
{
var u = User.GetUser(0);
var user = CurrentProvider.GetUser(0, true);
if (user == null)
var user = User.GetUser(0);
var membershipUser = CurrentProvider.GetUser(0, true);
if (membershipUser == null)
{
throw new InvalidOperationException("No user found in membership provider with id of 0");
}
//NOTE: This will throw an exception if the membership provider
try
{
var success = user.ChangePassword(u.GetPassword(), tb_password.Text.Trim());
if (!success)
var success = membershipUser.ChangePassword(user.GetPassword(), tb_password.Text.Trim());
if (success == false)
{
PasswordValidator.IsValid = false;
PasswordValidator.ErrorMessage = "Password must be at least " + CurrentProvider.MinRequiredPasswordLength + " characters long and contain at least " + CurrentProvider.MinRequiredNonAlphanumericCharacters + " symbols";
@@ -60,30 +61,11 @@ namespace Umbraco.Web.UI.Install.Steps
return;
}
// Is it using the default membership provider
if (CurrentProvider.IsUmbracoUsersProvider())
{
// Save user in membership provider
var umbracoUser = user as UsersMembershipUser;
umbracoUser.FullName = tb_name.Text.Trim();
CurrentProvider.UpdateUser(umbracoUser);
// Save user details
u.Email = tb_email.Text.Trim();
}
else
{
u.Name = tb_name.Text.Trim();
if ((CurrentProvider is ActiveDirectoryMembershipProvider) == false)
{
CurrentProvider.UpdateUser(user);
}
}
// we need to update the login name here as it's set to the old name when saving the user via the membership provider!
u.LoginName = tb_login.Text;
u.Save();
user.Email = tb_email.Text.Trim();
user.Name = tb_name.Text.Trim();
user.LoginName = tb_login.Text;
user.Save();
if (cb_newsletter.Checked)
{
@@ -93,14 +75,16 @@ namespace Umbraco.Web.UI.Install.Steps
var values = new NameValueCollection {{"name", tb_name.Text}, {"email", tb_email.Text}};
client.UploadValues("http://umbraco.org/base/Ecom/SubmitEmail/installer.aspx", values);
}
catch { /* fail in silence */ }
catch (Exception ex)
{
LogHelper.Error<DefaultUser>("An error occurred subscribing user to newsletter", ex);
}
}
if (String.IsNullOrWhiteSpace(GlobalSettings.ConfigurationStatus))
UmbracoContext.Current.Security.PerformLogin(u.Id);
UmbracoContext.Current.Security.PerformLogin(user.Id);
InstallHelper.RedirectToNextStep(Page, GetCurrentStep());
}

View File

@@ -12,6 +12,7 @@ namespace umbraco.providers
/// <summary>
/// Wrapper for the umbraco.BusinessLogic.User class.
/// </summary>
[Obsolete("This class is used by the legacy user's membership provider which is also obsolete, this shouldn't be referenced directly in code, the standard .Net MembershipUser base class object should be referenced instead.")]
public class UsersMembershipUser : MembershipUser
{
#region Fields and Properties