FilesMessageService: removed GetHttpHeaders

This commit is contained in:
pavelbannov 2023-09-25 14:14:57 +03:00
parent b670c532cc
commit 7c62a28318
4 changed files with 41 additions and 46 deletions

View File

@ -33,7 +33,6 @@ public class CustomTagsService
private readonly FileSecurity _fileSecurity;
private readonly AuthContext _authContext;
private readonly FilesMessageService _filesMessageService;
private readonly IHttpContextAccessor _httpContextAccessor;
private readonly UserManager _userManager;
public CustomTagsService(
@ -41,14 +40,12 @@ public class CustomTagsService
FileSecurity fileSecurity,
AuthContext authContext,
FilesMessageService filesMessageService,
IHttpContextAccessor httpContextAccessor,
UserManager userManager)
{
_daoFactory = daoFactory;
_fileSecurity = fileSecurity;
_authContext = authContext;
_filesMessageService = filesMessageService;
_httpContextAccessor = httpContextAccessor;
_userManager = userManager;
}

View File

@ -47,7 +47,6 @@ public class RoomLogoManager
private readonly TenantManager _tenantManager;
private IDataStore _dataStore;
private readonly FilesMessageService _filesMessageService;
private readonly IHttpContextAccessor _httpContextAccessor;
private readonly EmailValidationKeyProvider _emailValidationKeyProvider;
private readonly SecurityContext _securityContext;
private readonly FileUtilityConfiguration _fileUtilityConfiguration;
@ -59,7 +58,6 @@ public class RoomLogoManager
FileSecurity fileSecurity,
ILogger<RoomLogoManager> logger,
FilesMessageService filesMessageService,
IHttpContextAccessor httpContextAccessor,
EmailValidationKeyProvider emailValidationKeyProvider,
SecurityContext securityContext,
FileUtilityConfiguration fileUtilityConfiguration)
@ -70,7 +68,6 @@ public class RoomLogoManager
_fileSecurity = fileSecurity;
_logger = logger;
_filesMessageService = filesMessageService;
_httpContextAccessor = httpContextAccessor;
_emailValidationKeyProvider = emailValidationKeyProvider;
_securityContext = securityContext;
_fileUtilityConfiguration = fileUtilityConfiguration;

View File

@ -34,23 +34,17 @@ public class FilesMessageService
private readonly MessageService _messageService;
private readonly IHttpContextAccessor _httpContextAccessor;
private readonly IDaoFactory _daoFactory;
private readonly NotifyClient _notifyClient;
private readonly AuthContext _authContext;
public FilesMessageService(
ILoggerProvider options,
MessageTarget messageTarget,
MessageService messageService,
IDaoFactory daoFactory,
NotifyClient notifyClient,
AuthContext authContext)
IDaoFactory daoFactory)
{
_logger = options.CreateLogger("ASC.Messaging");
_messageTarget = messageTarget;
_messageService = messageService;
_daoFactory = daoFactory;
_notifyClient = notifyClient;
_authContext = authContext;
}
public FilesMessageService(
@ -58,10 +52,8 @@ public class FilesMessageService
MessageTarget messageTarget,
MessageService messageService,
IHttpContextAccessor httpContextAccessor,
IDaoFactory daoFactory,
NotifyClient notifyClient,
AuthContext authContext)
: this(options, messageTarget, messageService, daoFactory, notifyClient, authContext)
IDaoFactory daoFactory)
: this(options, messageTarget, messageService, daoFactory)
{
_httpContextAccessor = httpContextAccessor;
}
@ -78,34 +70,23 @@ public class FilesMessageService
public async Task SendAsync<T>(MessageAction action, FileEntry<T> entry, params string[] description)
{
await SendAsync(action, entry, GetHttpHeaders(), null, Guid.Empty, FileShare.None, description);
}
public async Task SendAsync<T>(MessageAction action, FileEntry<T> entry, IDictionary<string, StringValues> headers, List<AceWrapper> aces, params string[] description)
{
if (action == MessageAction.RoomDeleted)
{
var userId = _authContext.CurrentAccount.ID;
await _notifyClient.SendRoomRemovedAsync(entry, aces, userId);
}
await SendAsync(action, entry, headers, null, Guid.Empty, FileShare.None, description);
await SendAsync(action, entry, null, Guid.Empty, FileShare.None, description);
}
public async Task SendAsync<T>(MessageAction action, string oldTitle, FileEntry<T> entry, params string[] description)
{
await SendAsync(action, entry, GetHttpHeaders(), oldTitle, description: description);
await SendAsync(action, entry, oldTitle, description: description);
}
public async Task SendAsync<T>(MessageAction action, FileEntry<T> entry, Guid userId, params string[] description)
{
await SendAsync(action, entry, GetHttpHeaders(), userId: userId, description: description);
await SendAsync(action, entry, null, userId, FileShare.None, description);
}
public async Task SendAsync<T>(MessageAction action, FileEntry<T> entry, Guid userId, FileShare userRole, params string[] description)
{
description = description.Append(FileStorageService.GetAccessString(userRole)).ToArray();
await SendAsync(action, entry, GetHttpHeaders(), null, userId, userRole, description);
await SendAsync(action, entry, null, userId, userRole, description);
}
private async Task SendAsync<T>(MessageAction action, FileEntry<T> entry, IDictionary<string, StringValues> headers, string oldTitle = null, Guid userId = default(Guid), FileShare userRole = FileShare.None, params string[] description)
@ -122,7 +103,31 @@ public class FilesMessageService
description = description.Append(additionalParam).ToArray();
}
await SendHeadersMessageAsync(headers, action, _messageTarget.Create(entry.Id), description);
if (headers == null)//todo check need if
{
_logger.DebugEmptyRequestHeaders(action);
return;
}
await _messageService.SendHeadersMessageAsync(action, _messageTarget.Create(entry.Id), headers, description);
}
private async Task SendAsync<T>(MessageAction action, FileEntry<T> entry, string oldTitle = null, Guid userId = default(Guid), FileShare userRole = FileShare.None, params string[] description)
{
if (entry == null)
{
return;
}
var additionalParam = await GetAdditionalNotificationParamAsync(entry, action, oldTitle, userId, userRole);
if (additionalParam != "")
{
description = description.Append(additionalParam).ToArray();
}
await _messageService.SendAsync(action, _messageTarget.Create(entry.Id), description);
}
public async Task SendAsync<T1, T2>(MessageAction action, FileEntry<T1> entry1, FileEntry<T2> entry2, IDictionary<string, StringValues> headers, params string[] description)
@ -139,11 +144,6 @@ public class FilesMessageService
description = description.Append(additionalParams).ToArray();
}
await SendHeadersMessageAsync(headers, action, _messageTarget.CreateFromGroupValues(new[] { entry1.Id.ToString(), entry2.Id.ToString() }), description);
}
private async Task SendHeadersMessageAsync(IDictionary<string, StringValues> headers, MessageAction action, MessageTarget target, params string[] description)
{
if (headers == null)//todo check need if
{
_logger.DebugEmptyRequestHeaders(action);
@ -151,7 +151,7 @@ public class FilesMessageService
return;
}
await _messageService.SendHeadersMessageAsync(action, target, headers, description);
await _messageService.SendHeadersMessageAsync(action, _messageTarget.CreateFromGroupValues(new[] { entry1.Id.ToString(), entry2.Id.ToString() }), headers, description);
}
public async Task SendAsync<T>(MessageAction action, FileEntry<T> entry, string description)
@ -254,9 +254,4 @@ public class FilesMessageService
return serializedParam;
}
private IDictionary<string, StringValues> GetHttpHeaders()
{
return _httpContextAccessor?.HttpContext?.Request?.Headers?.ToDictionary(k => k.Key, v => v.Value);
}
}

View File

@ -120,7 +120,11 @@ class FileDeleteOperation<T> : FileOperation<FileDeleteOperationData<T>, T>
var scopeClass = scope.ServiceProvider.GetService<FileDeleteOperationScope>();
var socketManager = scope.ServiceProvider.GetService<SocketManager>();
var fileSharing = scope.ServiceProvider.GetService<FileSharing>();
var authContext = scope.ServiceProvider.GetService<AuthContext>();
var notifyClient = scope.ServiceProvider.GetService<NotifyClient>();
var (fileMarker, filesMessageService, roomLogoManager) = scopeClass;
foreach (var folderId in folderIds)
{
CancellationToken.ThrowIfCancellationRequested();
@ -209,7 +213,8 @@ class FileDeleteOperation<T> : FileOperation<FileDeleteOperationData<T>, T>
if (isRoom)
{
_ = filesMessageService.SendAsync(MessageAction.RoomDeleted, folder, _headers, aces, folder.Title);
await notifyClient.SendRoomRemovedAsync(folder, aces, authContext.CurrentAccount.ID);
_ = filesMessageService.SendAsync(MessageAction.RoomDeleted, folder, _headers, folder.Title);
}
else
{
@ -253,7 +258,8 @@ class FileDeleteOperation<T> : FileOperation<FileDeleteOperationData<T>, T>
{
if (isRoom)
{
_ = filesMessageService.SendAsync(MessageAction.RoomDeleted, folder, _headers, aces, folder.Title);
await notifyClient.SendRoomRemovedAsync(folder, aces, authContext.CurrentAccount.ID);
_ = filesMessageService.SendAsync(MessageAction.RoomDeleted, folder, _headers, folder.Title);
}
else
{