Make Lockoutend date nullable

This commit is contained in:
Suhas Joshi 2014-11-17 17:26:55 -08:00
parent f24d3a5462
commit f99a29a12c
8 changed files with 35 additions and 16 deletions

View File

@ -650,7 +650,7 @@ namespace Microsoft.AspNet.Identity.EntityFramework
/// <param name="user"></param> /// <param name="user"></param>
/// <param name="cancellationToken"></param> /// <param name="cancellationToken"></param>
/// <returns></returns> /// <returns></returns>
public virtual Task<DateTimeOffset> GetLockoutEndDateAsync(TUser user, CancellationToken cancellationToken = default(CancellationToken)) public virtual Task<DateTimeOffset?> GetLockoutEndDateAsync(TUser user, CancellationToken cancellationToken = default(CancellationToken))
{ {
cancellationToken.ThrowIfCancellationRequested(); cancellationToken.ThrowIfCancellationRequested();
ThrowIfDisposed(); ThrowIfDisposed();
@ -668,7 +668,7 @@ namespace Microsoft.AspNet.Identity.EntityFramework
/// <param name="lockoutEnd"></param> /// <param name="lockoutEnd"></param>
/// <param name="cancellationToken"></param> /// <param name="cancellationToken"></param>
/// <returns></returns> /// <returns></returns>
public virtual Task SetLockoutEndDateAsync(TUser user, DateTimeOffset lockoutEnd, CancellationToken cancellationToken = default(CancellationToken)) public virtual Task SetLockoutEndDateAsync(TUser user, DateTimeOffset? lockoutEnd, CancellationToken cancellationToken = default(CancellationToken))
{ {
cancellationToken.ThrowIfCancellationRequested(); cancellationToken.ThrowIfCancellationRequested();
ThrowIfDisposed(); ThrowIfDisposed();

View File

@ -20,7 +20,7 @@ namespace Microsoft.AspNet.Identity
/// <param name="user"></param> /// <param name="user"></param>
/// <param name="cancellationToken"></param> /// <param name="cancellationToken"></param>
/// <returns></returns> /// <returns></returns>
Task<DateTimeOffset> GetLockoutEndDateAsync(TUser user, Task<DateTimeOffset?> GetLockoutEndDateAsync(TUser user,
CancellationToken cancellationToken = default(CancellationToken)); CancellationToken cancellationToken = default(CancellationToken));
/// <summary> /// <summary>
@ -30,7 +30,7 @@ namespace Microsoft.AspNet.Identity
/// <param name="lockoutEnd"></param> /// <param name="lockoutEnd"></param>
/// <param name="cancellationToken"></param> /// <param name="cancellationToken"></param>
/// <returns></returns> /// <returns></returns>
Task SetLockoutEndDateAsync(TUser user, DateTimeOffset lockoutEnd, Task SetLockoutEndDateAsync(TUser user, DateTimeOffset? lockoutEnd,
CancellationToken cancellationToken = default(CancellationToken)); CancellationToken cancellationToken = default(CancellationToken));
/// <summary> /// <summary>

View File

@ -70,7 +70,7 @@ namespace Microsoft.AspNet.Identity
/// <summary> /// <summary>
/// DateTime in UTC when lockout ends, any time in the past is considered not locked out. /// DateTime in UTC when lockout ends, any time in the past is considered not locked out.
/// </summary> /// </summary>
public virtual DateTimeOffset LockoutEnd { get; set; } public virtual DateTimeOffset? LockoutEnd { get; set; }
/// <summary> /// <summary>
/// Is lockout enabled for this user /// Is lockout enabled for this user

View File

@ -1786,7 +1786,7 @@ namespace Microsoft.AspNet.Identity
/// <param name="user"></param> /// <param name="user"></param>
/// <param name="cancellationToken"></param> /// <param name="cancellationToken"></param>
/// <returns></returns> /// <returns></returns>
public virtual async Task<DateTimeOffset> GetLockoutEndDateAsync(TUser user, public virtual async Task<DateTimeOffset?> GetLockoutEndDateAsync(TUser user,
CancellationToken cancellationToken = default(CancellationToken)) CancellationToken cancellationToken = default(CancellationToken))
{ {
ThrowIfDisposed(); ThrowIfDisposed();
@ -1805,7 +1805,7 @@ namespace Microsoft.AspNet.Identity
/// <param name="lockoutEnd"></param> /// <param name="lockoutEnd"></param>
/// <param name="cancellationToken"></param> /// <param name="cancellationToken"></param>
/// <returns></returns> /// <returns></returns>
public virtual async Task<IdentityResult> SetLockoutEndDateAsync(TUser user, DateTimeOffset lockoutEnd, public virtual async Task<IdentityResult> SetLockoutEndDateAsync(TUser user, DateTimeOffset? lockoutEnd,
CancellationToken cancellationToken = default(CancellationToken)) CancellationToken cancellationToken = default(CancellationToken))
{ {
ThrowIfDisposed(); ThrowIfDisposed();

View File

@ -535,7 +535,7 @@ namespace Microsoft.AspNet.Identity.EntityFramework.InMemory.Test
/// <param name="user"></param> /// <param name="user"></param>
/// <param name="cancellationToken"></param> /// <param name="cancellationToken"></param>
/// <returns></returns> /// <returns></returns>
public virtual Task<DateTimeOffset> GetLockoutEndDateAsync(TUser user, CancellationToken cancellationToken = default(CancellationToken)) public virtual Task<DateTimeOffset?> GetLockoutEndDateAsync(TUser user, CancellationToken cancellationToken = default(CancellationToken))
{ {
cancellationToken.ThrowIfCancellationRequested(); cancellationToken.ThrowIfCancellationRequested();
ThrowIfDisposed(); ThrowIfDisposed();
@ -553,7 +553,7 @@ namespace Microsoft.AspNet.Identity.EntityFramework.InMemory.Test
/// <param name="lockoutEnd"></param> /// <param name="lockoutEnd"></param>
/// <param name="cancellationToken"></param> /// <param name="cancellationToken"></param>
/// <returns></returns> /// <returns></returns>
public virtual Task SetLockoutEndDateAsync(TUser user, DateTimeOffset lockoutEnd, CancellationToken cancellationToken = default(CancellationToken)) public virtual Task SetLockoutEndDateAsync(TUser user, DateTimeOffset? lockoutEnd, CancellationToken cancellationToken = default(CancellationToken))
{ {
cancellationToken.ThrowIfCancellationRequested(); cancellationToken.ThrowIfCancellationRequested();
ThrowIfDisposed(); ThrowIfDisposed();

View File

@ -102,12 +102,12 @@ namespace Microsoft.AspNet.Identity.InMemory
Users.FirstOrDefault(u => String.Equals(u.Email, email, StringComparison.OrdinalIgnoreCase))); Users.FirstOrDefault(u => String.Equals(u.Email, email, StringComparison.OrdinalIgnoreCase)));
} }
public Task<DateTimeOffset> GetLockoutEndDateAsync(TUser user, CancellationToken cancellationToken = default(CancellationToken)) public Task<DateTimeOffset?> GetLockoutEndDateAsync(TUser user, CancellationToken cancellationToken = default(CancellationToken))
{ {
return Task.FromResult(user.LockoutEnd); return Task.FromResult(user.LockoutEnd);
} }
public Task SetLockoutEndDateAsync(TUser user, DateTimeOffset lockoutEnd, CancellationToken cancellationToken = default(CancellationToken)) public Task SetLockoutEndDateAsync(TUser user, DateTimeOffset? lockoutEnd, CancellationToken cancellationToken = default(CancellationToken))
{ {
user.LockoutEnd = lockoutEnd; user.LockoutEnd = lockoutEnd;
return Task.FromResult(0); return Task.FromResult(0);

View File

@ -779,12 +779,12 @@ namespace Microsoft.AspNet.Identity.Test
return Task.FromResult<TestUser>(null); return Task.FromResult<TestUser>(null);
} }
public Task<DateTimeOffset> GetLockoutEndDateAsync(TestUser user, CancellationToken cancellationToken = default(CancellationToken)) public Task<DateTimeOffset?> GetLockoutEndDateAsync(TestUser user, CancellationToken cancellationToken = default(CancellationToken))
{ {
return Task.FromResult(DateTimeOffset.MinValue); return Task.FromResult<DateTimeOffset?>(DateTimeOffset.MinValue);
} }
public Task SetLockoutEndDateAsync(TestUser user, DateTimeOffset lockoutEnd, CancellationToken cancellationToken = default(CancellationToken)) public Task SetLockoutEndDateAsync(TestUser user, DateTimeOffset? lockoutEnd, CancellationToken cancellationToken = default(CancellationToken))
{ {
return Task.FromResult(0); return Task.FromResult(0);
} }
@ -1045,12 +1045,12 @@ namespace Microsoft.AspNet.Identity.Test
throw new NotImplementedException(); throw new NotImplementedException();
} }
public Task<DateTimeOffset> GetLockoutEndDateAsync(TestUser user, CancellationToken cancellationToken = default(CancellationToken)) public Task<DateTimeOffset?> GetLockoutEndDateAsync(TestUser user, CancellationToken cancellationToken = default(CancellationToken))
{ {
throw new NotImplementedException(); throw new NotImplementedException();
} }
public Task SetLockoutEndDateAsync(TestUser user, DateTimeOffset lockoutEnd, CancellationToken cancellationToken = default(CancellationToken)) public Task SetLockoutEndDateAsync(TestUser user, DateTimeOffset? lockoutEnd, CancellationToken cancellationToken = default(CancellationToken))
{ {
throw new NotImplementedException(); throw new NotImplementedException();
} }

View File

@ -1449,6 +1449,25 @@ namespace Microsoft.AspNet.Identity.Test
Assert.False(await manager.VerifyTwoFactorTokenAsync(user, "Phone", "bogus")); Assert.False(await manager.VerifyTwoFactorTokenAsync(user, "Phone", "bogus"));
} }
[Fact]
public async Task NullableDateTimeOperationTest()
{
var userMgr = CreateManager();
var user = CreateTestUser();
user.LockoutEnabled = true;
IdentityResultAssert.IsSuccess(await userMgr.CreateAsync(user));
Assert.Null(await userMgr.GetLockoutEndDateAsync(user));
// set LockoutDateEndDate to null
await userMgr.SetLockoutEndDateAsync(user, null);
Assert.Null(await userMgr.GetLockoutEndDateAsync(user));
// set to a valid value
await userMgr.SetLockoutEndDateAsync(user, DateTimeOffset.Parse("01/01/2014"));
Assert.Equal(DateTimeOffset.Parse("01/01/2014"), await userMgr.GetLockoutEndDateAsync(user));
}
public List<TUser> GenerateUsers(string userNamePrefix, int count) public List<TUser> GenerateUsers(string userNamePrefix, int count)
{ {
var users = new List<TUser>(count); var users = new List<TUser>(count);