mirror of
https://github.com/streetwriters/notesnook-sync-server.git
synced 2026-02-12 11:12:44 +00:00
global: migrate to using ILogger
This commit is contained in:
@@ -32,6 +32,7 @@ using Microsoft.AspNetCore.Authorization;
|
||||
using Microsoft.AspNetCore.Identity;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.AspNetCore.RateLimiting;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Streetwriters.Common;
|
||||
using Streetwriters.Common.Enums;
|
||||
using Streetwriters.Common.Interfaces;
|
||||
@@ -54,13 +55,15 @@ namespace Streetwriters.Identity.Controllers
|
||||
private IPersistedGrantStore PersistedGrantStore { get; set; }
|
||||
private ITokenGenerationService TokenGenerationService { get; set; }
|
||||
private IUserAccountService UserAccountService { get; set; }
|
||||
private readonly ILogger<AccountController> logger;
|
||||
public AccountController(UserManager<User> _userManager, ITemplatedEmailSender _emailSender,
|
||||
SignInManager<User> _signInManager, RoleManager<MongoRole> _roleManager, IPersistedGrantStore store,
|
||||
ITokenGenerationService tokenGenerationService, IMFAService _mfaService, IUserAccountService userAccountService) : base(_userManager, _emailSender, _signInManager, _roleManager, _mfaService)
|
||||
ITokenGenerationService tokenGenerationService, IMFAService _mfaService, IUserAccountService userAccountService, ILogger<AccountController> logger) : base(_userManager, _emailSender, _signInManager, _roleManager, _mfaService)
|
||||
{
|
||||
PersistedGrantStore = store;
|
||||
TokenGenerationService = tokenGenerationService;
|
||||
UserAccountService = userAccountService;
|
||||
this.logger = logger;
|
||||
}
|
||||
|
||||
[HttpGet("confirm")]
|
||||
@@ -161,7 +164,7 @@ namespace Streetwriters.Identity.Controllers
|
||||
#if (DEBUG || STAGING)
|
||||
return Ok(callbackUrl);
|
||||
#else
|
||||
await Slogger<AccountController>.Info("ResetUserPassword", user.Email, callbackUrl);
|
||||
logger.LogInformation("Password reset email sent to: {Email}, callback URL: {CallbackUrl}", user.Email, callbackUrl);
|
||||
await EmailSender.SendPasswordResetEmailAsync(user.Email, callbackUrl, client);
|
||||
return Ok();
|
||||
#endif
|
||||
|
||||
@@ -26,6 +26,7 @@ using Microsoft.AspNetCore.Authorization;
|
||||
using Microsoft.AspNetCore.Identity;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.AspNetCore.RateLimiting;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Streetwriters.Common;
|
||||
using Streetwriters.Common.Enums;
|
||||
using Streetwriters.Common.Models;
|
||||
@@ -40,9 +41,16 @@ namespace Streetwriters.Identity.Controllers
|
||||
[Route("signup")]
|
||||
public class SignupController : IdentityControllerBase
|
||||
{
|
||||
private readonly ILogger<SignupController> logger;
|
||||
private readonly EmailAddressValidator emailValidator;
|
||||
|
||||
public SignupController(UserManager<User> _userManager, ITemplatedEmailSender _emailSender,
|
||||
SignInManager<User> _signInManager, RoleManager<MongoRole> _roleManager, IMFAService _mfaService) : base(_userManager, _emailSender, _signInManager, _roleManager, _mfaService)
|
||||
{ }
|
||||
SignInManager<User> _signInManager, RoleManager<MongoRole> _roleManager, IMFAService _mfaService,
|
||||
ILogger<SignupController> logger, EmailAddressValidator emailValidator) : base(_userManager, _emailSender, _signInManager, _roleManager, _mfaService)
|
||||
{
|
||||
this.logger = logger;
|
||||
this.emailValidator = emailValidator;
|
||||
}
|
||||
|
||||
private async Task AddClientRoleAsync(string clientId)
|
||||
{
|
||||
@@ -68,7 +76,7 @@ namespace Streetwriters.Identity.Controllers
|
||||
form.Email = form.Email.ToLowerInvariant();
|
||||
form.Username = form.Username?.ToLowerInvariant();
|
||||
|
||||
if (!await EmailAddressValidator.IsEmailAddressValidAsync(form.Email)) return BadRequest(new string[] { "Invalid email address." });
|
||||
if (!await emailValidator.IsEmailAddressValidAsync(form.Email)) return BadRequest(new string[] { "Invalid email address." });
|
||||
|
||||
var result = await UserManager.CreateAsync(new User
|
||||
{
|
||||
@@ -128,7 +136,7 @@ namespace Streetwriters.Identity.Controllers
|
||||
}
|
||||
catch (System.Exception ex)
|
||||
{
|
||||
await Slogger<SignupController>.Error("Signup", ex.ToString());
|
||||
logger.LogError(ex, "Failed to create user account for email: {Email}", form.Email);
|
||||
return BadRequest("Failed to create an account.");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Net.Http;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Streetwriters.Common;
|
||||
using System.Linq;
|
||||
|
||||
@@ -11,8 +12,14 @@ namespace Streetwriters.Identity.Services
|
||||
{
|
||||
private static DateTimeOffset LAST_FETCH_TIME = DateTimeOffset.MinValue;
|
||||
private static HashSet<string> BLACKLISTED_DOMAINS = new();
|
||||
private readonly ILogger<EmailAddressValidator> logger;
|
||||
|
||||
public static async Task<bool> IsEmailAddressValidAsync(string email)
|
||||
public EmailAddressValidator(ILogger<EmailAddressValidator> logger)
|
||||
{
|
||||
this.logger = logger;
|
||||
}
|
||||
|
||||
public async Task<bool> IsEmailAddressValidAsync(string email)
|
||||
{
|
||||
var domain = email.ToLowerInvariant().Split("@")[1];
|
||||
try
|
||||
@@ -30,7 +37,7 @@ namespace Streetwriters.Identity.Services
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
await Slogger<EmailAddressValidator>.Error("IsEmailAddressValidAsync", ex.ToString());
|
||||
logger.LogError(ex, "Failed to validate email address: {Email}", email);
|
||||
return BLACKLISTED_DOMAINS.Count > 0 ? !BLACKLISTED_DOMAINS.Contains(domain) : true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,6 +24,7 @@ using System.Text;
|
||||
using System.Text.Encodings.Web;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.AspNetCore.Identity;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Streetwriters.Common;
|
||||
using Streetwriters.Common.Enums;
|
||||
using Streetwriters.Common.Interfaces;
|
||||
@@ -42,11 +43,13 @@ namespace Streetwriters.Identity.Services
|
||||
private UserManager<User> UserManager { get; set; }
|
||||
private ITemplatedEmailSender EmailSender { get; set; }
|
||||
private ISMSSender SMSSender { get; set; }
|
||||
public MFAService(UserManager<User> _userManager, ITemplatedEmailSender emailSender, ISMSSender smsSender)
|
||||
private readonly ILogger<MFAService> logger;
|
||||
public MFAService(UserManager<User> _userManager, ITemplatedEmailSender emailSender, ISMSSender smsSender, ILogger<MFAService> logger)
|
||||
{
|
||||
UserManager = _userManager;
|
||||
EmailSender = emailSender;
|
||||
SMSSender = smsSender;
|
||||
this.logger = logger;
|
||||
}
|
||||
|
||||
public async Task EnableMFAAsync(User user, string primaryMethod)
|
||||
@@ -186,7 +189,7 @@ namespace Streetwriters.Identity.Services
|
||||
case "sms":
|
||||
await UserManager.SetPhoneNumberAsync(user, form.PhoneNumber);
|
||||
var id = await SMSSender.SendOTPAsync(form.PhoneNumber, client);
|
||||
await Slogger<MFAService>.Info("SendOTPAsync", user.Id.ToString(), id);
|
||||
logger.LogInformation("SMS OTP sent for user: {UserId}, SMS ID: {SmsId}", user.Id, id);
|
||||
await this.ReplaceClaimAsync(user, MFAService.SMS_ID_CLAIM, id);
|
||||
break;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user