This commit is contained in:
2
.vscode/launch.json
vendored
2
.vscode/launch.json
vendored
@@ -53,7 +53,7 @@
|
|||||||
"AYANOVA_FOLDER_USER_FILES": "c:\\temp\\RavenTestData\\userfiles",
|
"AYANOVA_FOLDER_USER_FILES": "c:\\temp\\RavenTestData\\userfiles",
|
||||||
"AYANOVA_FOLDER_BACKUP_FILES": "c:\\temp\\RavenTestData\\backupfiles",
|
"AYANOVA_FOLDER_BACKUP_FILES": "c:\\temp\\RavenTestData\\backupfiles",
|
||||||
"AYANOVA_FOLDER_TEMPORARY_SERVER_FILES": "c:\\temp\\RavenTestData\\tempfiles",
|
"AYANOVA_FOLDER_TEMPORARY_SERVER_FILES": "c:\\temp\\RavenTestData\\tempfiles",
|
||||||
"AYANOVA_SERVER_TEST_MODE": "true",
|
"AYANOVA_SERVER_TEST_MODE": "false",
|
||||||
"AYANOVA_SERVER_TEST_MODE_SEEDLEVEL": "small",
|
"AYANOVA_SERVER_TEST_MODE_SEEDLEVEL": "small",
|
||||||
"AYANOVA_SERVER_TEST_MODE_TZ_OFFSET": "-7",
|
"AYANOVA_SERVER_TEST_MODE_TZ_OFFSET": "-7",
|
||||||
"AYANOVA_BACKUP_PG_DUMP_PATH": "C:\\data\\code\\postgres_13\\bin\\"
|
"AYANOVA_BACKUP_PG_DUMP_PATH": "C:\\data\\code\\postgres_13\\bin\\"
|
||||||
|
|||||||
@@ -352,11 +352,18 @@ namespace AyaNova.Api.Controllers
|
|||||||
return BadRequest(new ApiErrorResponse(ModelState));
|
return BadRequest(new ApiErrorResponse(ModelState));
|
||||||
}
|
}
|
||||||
int nFailDelay = 3000;
|
int nFailDelay = 3000;
|
||||||
if (string.IsNullOrWhiteSpace(resetcreds.PasswordResetCode) || string.IsNullOrWhiteSpace(resetcreds.Password))
|
if (string.IsNullOrWhiteSpace(resetcreds.PasswordResetCode))
|
||||||
{
|
{
|
||||||
//Make a fail wait
|
//Make a fail wait
|
||||||
await Task.Delay(nFailDelay);
|
await Task.Delay(nFailDelay);
|
||||||
return StatusCode(401, new ApiErrorResponse(ApiErrorCode.AUTHENTICATION_FAILED));
|
return BadRequest(new ApiErrorResponse(ApiErrorCode.VALIDATION_REQUIRED, "PasswordResetCode", "Reset code is required"));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (string.IsNullOrWhiteSpace(resetcreds.Password))
|
||||||
|
{
|
||||||
|
//Make a fail wait
|
||||||
|
await Task.Delay(nFailDelay);
|
||||||
|
return BadRequest(new ApiErrorResponse(ApiErrorCode.VALIDATION_REQUIRED, "Password", "Password is required"));
|
||||||
}
|
}
|
||||||
|
|
||||||
//look for user with this reset code
|
//look for user with this reset code
|
||||||
@@ -365,14 +372,14 @@ namespace AyaNova.Api.Controllers
|
|||||||
{
|
{
|
||||||
//Make a fail wait
|
//Make a fail wait
|
||||||
await Task.Delay(nFailDelay);
|
await Task.Delay(nFailDelay);
|
||||||
return StatusCode(401, new ApiErrorResponse(ApiErrorCode.AUTHENTICATION_FAILED));
|
return BadRequest(new ApiErrorResponse(ApiErrorCode.VALIDATION_INVALID_VALUE, "PasswordResetCode", "Reset code not valid"));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (string.IsNullOrWhiteSpace(user.PasswordResetCode) || user.PasswordResetCodeExpire == null)
|
if (string.IsNullOrWhiteSpace(user.PasswordResetCode) || user.PasswordResetCodeExpire == null)
|
||||||
{
|
{
|
||||||
//Make a fail wait
|
//Make a fail wait
|
||||||
await Task.Delay(nFailDelay);
|
await Task.Delay(nFailDelay);
|
||||||
return StatusCode(401, new ApiErrorResponse(ApiErrorCode.AUTHENTICATION_FAILED));
|
return BadRequest(new ApiErrorResponse(ApiErrorCode.VALIDATION_INVALID_VALUE, "PasswordResetCode", "Reset code not valid"));
|
||||||
}
|
}
|
||||||
|
|
||||||
//vet the expiry
|
//vet the expiry
|
||||||
@@ -381,7 +388,7 @@ namespace AyaNova.Api.Controllers
|
|||||||
{//if reset code expired before now
|
{//if reset code expired before now
|
||||||
//Make a fail wait
|
//Make a fail wait
|
||||||
await Task.Delay(nFailDelay);
|
await Task.Delay(nFailDelay);
|
||||||
return StatusCode(401, new ApiErrorResponse(ApiErrorCode.NOT_AUTHORIZED, "PasswordResetCodeExpire", "Reset code has expired"));
|
return BadRequest(new ApiErrorResponse(ApiErrorCode.NOT_AUTHORIZED, "PasswordResetCodeExpire", "Reset code has expired"));
|
||||||
}
|
}
|
||||||
//Ok, were in, it's all good, accept the new password and update the user record
|
//Ok, were in, it's all good, accept the new password and update the user record
|
||||||
UserBiz biz = UserBiz.GetBiz(ct, HttpContext);
|
UserBiz biz = UserBiz.GetBiz(ct, HttpContext);
|
||||||
|
|||||||
@@ -341,7 +341,7 @@ namespace AyaNova.Biz
|
|||||||
|
|
||||||
var ResetCode = Hasher.GetRandomAlphanumericString(32);
|
var ResetCode = Hasher.GetRandomAlphanumericString(32);
|
||||||
dbObject.PasswordResetCode = ResetCode;
|
dbObject.PasswordResetCode = ResetCode;
|
||||||
dbObject.PasswordResetCodeExpire = DateTime.UtcNow.AddHours(48);//This is not enough time to issue a reset code on a friday at 5pm and use it Monday before noon, but it is more understandable and clear
|
dbObject.PasswordResetCodeExpire = DateTime.UtcNow.AddSeconds(1);//.AddHours(48);//This is not enough time to issue a reset code on a friday at 5pm and use it Monday before noon, but it is more understandable and clear
|
||||||
await ct.SaveChangesAsync();
|
await ct.SaveChangesAsync();
|
||||||
|
|
||||||
//send message
|
//send message
|
||||||
|
|||||||
Reference in New Issue
Block a user