BrockAllen.MembershipReboot icon indicating copy to clipboard operation
BrockAllen.MembershipReboot copied to clipboard

Support for Account approval proccess

Open christianacca opened this issue 8 years ago • 3 comments

Hi Brok, I've been trying to add an account approval process. I think MR needs an enhancement that I'm about to add if OK with you.

Problem

There's no way to distinguish between when an account is locked or that the account is unapproved.

ie UserAccount.IsLoginAllowed is being overloaded with multiple meanings.

Scenario

Just to be clear here's the use case:

  • User registers for a new account
  • Admin user reviews the new account and decides to either approve or reject new account

Solution

  • Add an UserAccount.IsAccountApproved flag
  • Add an MembershipRebootConfiguration.RequireAccountApproval flag
    • defaults to false for backwards compatibility
  • Deny authentication (and sign in) when !IsAccountApproved && RequireAccountApproval
  • Add ApproveAccount and RejectAccount methods to UserAccountService
    • sets IsAccountApproved
    • raises corresponding events

christianacca avatar Apr 16 '16 07:04 christianacca

MembershipRebootConfiguration.AllowLoginAfterAccountCreation is probably the closest thing in MR that currently supports an approval process.

RequireAccountApproval that I propose above would be used instead to prevent the login until the account is approved.

AllowLoginAfterAccountCreation would need to obsoleted to allow a period of backward compatibility.

christianacca avatar Apr 16 '16 10:04 christianacca

I would also be tempted to rename IsLoginAllowed -> IsLocked.

I won't of course as it would be a big breaking change. Instead I'll add a summary xml comment to the property:

/// <summary>
/// Returns true when the account is locked
/// </summary>
/// <remarks>
/// An locked account will not be able to sign in
/// </remarks>
public virtual bool IsLoginAllowed { get; protected internal set; }

christianacca avatar Apr 16 '16 10:04 christianacca

I've submitted the PR: https://github.com/brockallen/BrockAllen.MembershipReboot/pull/634

christianacca avatar Apr 16 '16 15:04 christianacca