Added new API check if user with email exists or not
This commit is contained in:
parent
7bf30d722b
commit
60a3b3ab22
@ -6,8 +6,11 @@ using Marco.Pms.Model.Utilities;
|
|||||||
using Marco.Pms.Model.ViewModels.Employee;
|
using Marco.Pms.Model.ViewModels.Employee;
|
||||||
using Marco.Pms.Services.Service.ServiceInterfaces;
|
using Marco.Pms.Services.Service.ServiceInterfaces;
|
||||||
using MarcoBMS.Services.Helpers;
|
using MarcoBMS.Services.Helpers;
|
||||||
|
using MarcoBMS.Services.Service;
|
||||||
using Microsoft.AspNetCore.Authorization;
|
using Microsoft.AspNetCore.Authorization;
|
||||||
|
using Microsoft.AspNetCore.Identity;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
using System.Net.Mail;
|
||||||
|
|
||||||
namespace MarcoBMS.Services.Controllers
|
namespace MarcoBMS.Services.Controllers
|
||||||
{
|
{
|
||||||
@ -18,14 +21,17 @@ namespace MarcoBMS.Services.Controllers
|
|||||||
public class UserController : ControllerBase
|
public class UserController : ControllerBase
|
||||||
{
|
{
|
||||||
private readonly UserHelper _userHelper;
|
private readonly UserHelper _userHelper;
|
||||||
|
private readonly UserManager<ApplicationUser> _userManager;
|
||||||
private readonly EmployeeHelper _employeeHelper;
|
private readonly EmployeeHelper _employeeHelper;
|
||||||
|
private readonly ILoggingService _logger;
|
||||||
private readonly IProjectServices _projectServices;
|
private readonly IProjectServices _projectServices;
|
||||||
private readonly RolesHelper _rolesHelper;
|
private readonly RolesHelper _rolesHelper;
|
||||||
|
|
||||||
public UserController(EmployeeHelper employeeHelper, IProjectServices projectServices, UserHelper userHelper, RolesHelper rolesHelper)
|
public UserController(EmployeeHelper employeeHelper, UserManager<ApplicationUser> userManager, ILoggingService logger, IProjectServices projectServices, UserHelper userHelper, RolesHelper rolesHelper)
|
||||||
{
|
{
|
||||||
|
_userManager = userManager;
|
||||||
_userHelper = userHelper;
|
_userHelper = userHelper;
|
||||||
|
_logger = logger;
|
||||||
_employeeHelper = employeeHelper;
|
_employeeHelper = employeeHelper;
|
||||||
_projectServices = projectServices;
|
_projectServices = projectServices;
|
||||||
_rolesHelper = rolesHelper;
|
_rolesHelper = rolesHelper;
|
||||||
@ -81,5 +87,44 @@ namespace MarcoBMS.Services.Controllers
|
|||||||
|
|
||||||
return Ok(ApiResponse<object>.SuccessResponse(profile, "Success", 200));
|
return Ok(ApiResponse<object>.SuccessResponse(profile, "Success", 200));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[HttpGet("email/{email}")]
|
||||||
|
public async Task<IActionResult> GetUserByEmail(string email)
|
||||||
|
{
|
||||||
|
var isvalid = IsValidEmail(email);
|
||||||
|
if (!isvalid)
|
||||||
|
{
|
||||||
|
_logger.LogWarning("User provided invalid email address");
|
||||||
|
return BadRequest(ApiResponse<object>.ErrorResponse("Invalid email", "Invalid email", 400));
|
||||||
|
}
|
||||||
|
var user = await _userManager.FindByEmailAsync(email);
|
||||||
|
|
||||||
|
if (user == null)
|
||||||
|
{
|
||||||
|
_logger.LogInfo("User with email {Email} not found in ASP.NET users table", email);
|
||||||
|
return Ok(ApiResponse<object>.SuccessResponse(true, "User not exists", 200));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_logger.LogInfo("User with email {Email} founded in ASP.NET users table", email);
|
||||||
|
return Ok(ApiResponse<object>.SuccessResponse(false, "User exists", 200));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private static bool IsValidEmail(string email)
|
||||||
|
{
|
||||||
|
if (string.IsNullOrWhiteSpace(email))
|
||||||
|
return false;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var addr = new MailAddress(email);
|
||||||
|
return addr.Address == email.Trim();
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user