Re-introduce the option to conditionally login members after registration (#13659)
* Re-introduce the option to conditionally login members after registration * Make absolutely sure the default is true for automatic member login after registration
This commit is contained in:
@@ -18,6 +18,9 @@
|
||||
// Set to true if you want the member editable properties shown.
|
||||
// It will only displays properties marked as "Member can edit" on the "Info" tab of the Member Type.
|
||||
.WithCustomProperties(false)
|
||||
// By default the member will be logged in automatically after registration.
|
||||
// Set this to false if the member should not be logged in automatically.
|
||||
.WithAutomaticLogIn(true)
|
||||
.Build();
|
||||
|
||||
var success = TempData["FormSuccess"] != null;
|
||||
@@ -39,7 +42,8 @@ else
|
||||
new {
|
||||
MemberTypeAlias = registerModel.MemberTypeAlias,
|
||||
UsernameIsEmail = registerModel.UsernameIsEmail,
|
||||
RedirectUrl = registerModel.RedirectUrl
|
||||
RedirectUrl = registerModel.RedirectUrl,
|
||||
AutomaticLogIn = registerModel.AutomaticLogIn
|
||||
}))
|
||||
{
|
||||
<h2>Create a new account.</h2>
|
||||
|
||||
@@ -95,6 +95,12 @@ public class UmbRegisterController : SurfaceController
|
||||
{
|
||||
model.UsernameIsEmail = usernameIsEmail.ToString() == "True";
|
||||
}
|
||||
|
||||
if (RouteData.Values.TryGetValue(nameof(RegisterModel.AutomaticLogIn), out var automaticLogin) &&
|
||||
automaticLogin != null)
|
||||
{
|
||||
model.AutomaticLogIn = automaticLogin.ToString() == "True";
|
||||
}
|
||||
}
|
||||
|
||||
private void AddErrors(IdentityResult result)
|
||||
@@ -109,9 +115,8 @@ public class UmbRegisterController : SurfaceController
|
||||
/// Registers a new member.
|
||||
/// </summary>
|
||||
/// <param name="model">Register member model.</param>
|
||||
/// <param name="logMemberIn">Flag for whether to log the member in upon successful registration.</param>
|
||||
/// <returns>Result of registration operation.</returns>
|
||||
private async Task<IdentityResult> RegisterMemberAsync(RegisterModel model, bool logMemberIn = true)
|
||||
private async Task<IdentityResult> RegisterMemberAsync(RegisterModel model)
|
||||
{
|
||||
using ICoreScope scope = _scopeProvider.CreateCoreScope(autoComplete: true);
|
||||
|
||||
@@ -149,7 +154,7 @@ public class UmbRegisterController : SurfaceController
|
||||
|
||||
_memberService.Save(member);
|
||||
|
||||
if (logMemberIn)
|
||||
if (model.AutomaticLogIn)
|
||||
{
|
||||
await _memberSignInManager.SignInAsync(identityUser, false);
|
||||
}
|
||||
|
||||
@@ -13,6 +13,7 @@ public class RegisterModel : PostRedirectModel
|
||||
MemberTypeAlias = Constants.Conventions.MemberTypes.DefaultAlias;
|
||||
UsernameIsEmail = true;
|
||||
MemberProperties = new List<MemberPropertyModel>();
|
||||
AutomaticLogIn = true;
|
||||
}
|
||||
|
||||
[Required]
|
||||
@@ -59,4 +60,9 @@ public class RegisterModel : PostRedirectModel
|
||||
/// Flag to determine if the username should be the email address, if true then the Username property is ignored
|
||||
/// </summary>
|
||||
public bool UsernameIsEmail { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Flag to determine if the member should be logged in automatically after successful registration
|
||||
/// </summary>
|
||||
public bool AutomaticLogIn { get; set; }
|
||||
}
|
||||
|
||||
@@ -14,6 +14,7 @@ public class RegisterModelBuilder : MemberModelBuilderBase
|
||||
private string? _memberTypeAlias;
|
||||
private string? _redirectUrl;
|
||||
private bool _usernameIsEmail;
|
||||
private bool _automaticLogIn = true;
|
||||
|
||||
public RegisterModelBuilder(IMemberTypeService memberTypeService, IShortStringHelper shortStringHelper)
|
||||
: base(memberTypeService, shortStringHelper)
|
||||
@@ -44,6 +45,12 @@ public class RegisterModelBuilder : MemberModelBuilderBase
|
||||
return this;
|
||||
}
|
||||
|
||||
public RegisterModelBuilder WithAutomaticLogIn(bool automaticLogIn = true)
|
||||
{
|
||||
_automaticLogIn = automaticLogIn;
|
||||
return this;
|
||||
}
|
||||
|
||||
public RegisterModel Build()
|
||||
{
|
||||
var providedOrDefaultMemberTypeAlias = _memberTypeAlias ?? Constants.Conventions.MemberTypes.DefaultAlias;
|
||||
@@ -62,6 +69,7 @@ public class RegisterModelBuilder : MemberModelBuilderBase
|
||||
MemberProperties = _lookupProperties
|
||||
? GetMemberPropertiesViewModel(memberType)
|
||||
: Enumerable.Empty<MemberPropertyModel>().ToList(),
|
||||
AutomaticLogIn = _automaticLogIn
|
||||
};
|
||||
return model;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user