diff options
Diffstat (limited to 'code/api/src/Services')
| -rw-r--r-- | code/api/src/Services/EmailValidationService.cs | 2 | ||||
| -rw-r--r-- | code/api/src/Services/PasswordResetService.cs | 45 | ||||
| -rw-r--r-- | code/api/src/Services/TenantService.cs | 2 | ||||
| -rw-r--r-- | code/api/src/Services/UserService.cs | 2 |
4 files changed, 26 insertions, 25 deletions
diff --git a/code/api/src/Services/EmailValidationService.cs b/code/api/src/Services/EmailValidationService.cs index e88dfec..c7be20a 100644 --- a/code/api/src/Services/EmailValidationService.cs +++ b/code/api/src/Services/EmailValidationService.cs @@ -1,5 +1,3 @@ -using IOL.GreatOffice.Api.Models.Database; - namespace IOL.GreatOffice.Api.Services; public class EmailValidationService diff --git a/code/api/src/Services/PasswordResetService.cs b/code/api/src/Services/PasswordResetService.cs index a179e10..d4aeb0d 100644 --- a/code/api/src/Services/PasswordResetService.cs +++ b/code/api/src/Services/PasswordResetService.cs @@ -1,5 +1,3 @@ -using IOL.GreatOffice.Api.Models.Database; - namespace IOL.GreatOffice.Api.Services; public class PasswordResetService @@ -14,7 +12,8 @@ public class PasswordResetService MainAppDatabase database, VaultService vaultService, ILogger<PasswordResetService> logger, - MailService mailService, IStringLocalizer<SharedResources> localizer) { + MailService mailService, IStringLocalizer<SharedResources> localizer) + { _database = database; _configuration = vaultService.GetCurrentAppConfiguration(); _logger = logger; @@ -22,11 +21,13 @@ public class PasswordResetService _localizer = localizer; } - public async Task<PasswordResetRequest> GetRequestAsync(Guid id, CancellationToken cancellationToken = default) { + public async Task<PasswordResetRequest> GetRequestAsync(Guid id, CancellationToken cancellationToken = default) + { var request = await _database.PasswordResetRequests .Include(c => c.User) .SingleOrDefaultAsync(c => c.Id == id, cancellationToken); - if (request == default) { + if (request == default) + { return default; } @@ -34,7 +35,8 @@ public class PasswordResetService return request; } - public async Task<FulfillPasswordResetRequestResult> FulfillRequestAsync(Guid id, string newPassword, CancellationToken cancellationToken = default) { + public async Task<FulfillPasswordResetRequestResult> FulfillRequestAsync(Guid id, string newPassword, CancellationToken cancellationToken = default) + { var request = await GetRequestAsync(id, cancellationToken); if (request == default) return FulfillPasswordResetRequestResult.REQUEST_NOT_FOUND; var user = _database.Users.FirstOrDefault(c => c.Id == request.User.Id); @@ -47,13 +49,15 @@ public class PasswordResetService return FulfillPasswordResetRequestResult.FULFILLED; } - public async Task AddRequestAsync(User user, TimeZoneInfo requestTz, CancellationToken cancellationToken = default) { + public async Task AddRequestAsync(User user, TimeZoneInfo requestTz, CancellationToken cancellationToken = default) + { await DeleteRequestsForUserAsync(user.Id, cancellationToken); var request = new PasswordResetRequest(user); _database.PasswordResetRequests.Add(request); await _database.SaveChangesAsync(cancellationToken); var zonedExpirationDate = TimeZoneInfo.ConvertTimeBySystemTimeZoneId(request.ExpirationDate, requestTz.Id); - var message = new MailService.PostmarkEmail() { + var message = new MailService.PostmarkEmail() + { To = request.User.Username, Subject = _localizer["Reset password - Greatoffice"], TextBody = _localizer[""" @@ -68,16 +72,16 @@ If you did not request a password reset, no action is required. """, user.DisplayName(true), _configuration.CANONICAL_FRONTEND_URL, request.Id, zonedExpirationDate.ToString("yyyy-MM-dd hh:mm")] }; -#pragma warning disable 4014 - Task.Run(() => { -#pragma warning restore 4014 - _mailService.SendMailAsync(message); - _logger.LogInformation($"Added password reset request for user: {request.User.Username}, expires in {request.ExpirationDate.Subtract(AppDateTime.UtcNow)}."); - }, - cancellationToken); + await Task.Run(() => + { + _mailService.SendMailAsync(message).ConfigureAwait(false); + _logger.LogInformation($"Added password reset request for user: {request.User.Username}, expires in {request.ExpirationDate.Subtract(AppDateTime.UtcNow)}."); + }, + cancellationToken).ConfigureAwait(false); } - public async Task DeleteRequestsForUserAsync(Guid userId, CancellationToken cancellationToken = default) { + public async Task DeleteRequestsForUserAsync(Guid userId, CancellationToken cancellationToken = default) + { var requestsToRemove = _database.PasswordResetRequests.Where(c => c.UserId == userId).ToList(); if (!requestsToRemove.Any()) return; _database.PasswordResetRequests.RemoveRange(requestsToRemove); @@ -85,10 +89,13 @@ If you did not request a password reset, no action is required. _logger.LogInformation($"Deleted {requestsToRemove.Count} password reset requests for user: {userId}."); } - public async Task DeleteStaleRequestsAsync(CancellationToken cancellationToken = default) { + public async Task DeleteStaleRequestsAsync(CancellationToken cancellationToken = default) + { var deleteCount = 0; - foreach (var request in _database.PasswordResetRequests.Where(c => c.IsExpired)) { - if (!request.IsExpired) { + foreach (var request in _database.PasswordResetRequests.Where(c => c.IsExpired)) + { + if (!request.IsExpired) + { continue; } diff --git a/code/api/src/Services/TenantService.cs b/code/api/src/Services/TenantService.cs index 477a865..0de6f53 100644 --- a/code/api/src/Services/TenantService.cs +++ b/code/api/src/Services/TenantService.cs @@ -1,5 +1,3 @@ -using IOL.GreatOffice.Api.Models.Database; - namespace IOL.GreatOffice.Api.Services; public class TenantService diff --git a/code/api/src/Services/UserService.cs b/code/api/src/Services/UserService.cs index 8e183fe..4df8ded 100644 --- a/code/api/src/Services/UserService.cs +++ b/code/api/src/Services/UserService.cs @@ -1,5 +1,3 @@ -using IOL.GreatOffice.Api.Models.Database; - namespace IOL.GreatOffice.Api.Services; public class UserService |
