Files:DI
This commit is contained in:
parent
de4b4a0dde
commit
c0cc00bfbe
@ -31,6 +31,8 @@ using ASC.Core;
|
||||
using ASC.Core.Common.Configuration;
|
||||
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.DependencyInjection.Extensions;
|
||||
|
||||
namespace ASC.FederatedLogin.LoginProviders
|
||||
{
|
||||
@ -75,4 +77,18 @@ namespace ASC.FederatedLogin.LoginProviders
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
public static class BoxLoginProviderExtension
|
||||
{
|
||||
public static IServiceCollection AddBoxLoginProviderService(this IServiceCollection services)
|
||||
{
|
||||
services.TryAddScoped<BoxLoginProvider>();
|
||||
return services
|
||||
.AddConsumerFactoryService()
|
||||
.AddKafkaService()
|
||||
.AddTenantManagerService()
|
||||
.AddCoreBaseSettingsService()
|
||||
.AddCoreSettingsService();
|
||||
}
|
||||
}
|
||||
}
|
@ -34,6 +34,8 @@ using ASC.Core.Common.Configuration;
|
||||
using ASC.FederatedLogin.Helpers;
|
||||
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.DependencyInjection.Extensions;
|
||||
|
||||
namespace ASC.FederatedLogin.LoginProviders
|
||||
{
|
||||
@ -133,4 +135,17 @@ namespace ASC.FederatedLogin.LoginProviders
|
||||
return refreshed;
|
||||
}
|
||||
}
|
||||
public static class DocuSignLoginProviderExtension
|
||||
{
|
||||
public static IServiceCollection AddDocuSignLoginProviderService(this IServiceCollection services)
|
||||
{
|
||||
services.TryAddScoped<DocuSignLoginProvider>();
|
||||
return services
|
||||
.AddConsumerFactoryService()
|
||||
.AddKafkaService()
|
||||
.AddTenantManagerService()
|
||||
.AddCoreBaseSettingsService()
|
||||
.AddCoreSettingsService();
|
||||
}
|
||||
}
|
||||
}
|
@ -31,6 +31,8 @@ using ASC.Core;
|
||||
using ASC.Core.Common.Configuration;
|
||||
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.DependencyInjection.Extensions;
|
||||
|
||||
namespace ASC.FederatedLogin.LoginProviders
|
||||
{
|
||||
@ -72,4 +74,17 @@ namespace ASC.FederatedLogin.LoginProviders
|
||||
{
|
||||
}
|
||||
}
|
||||
public static class DropboxLoginProviderExtension
|
||||
{
|
||||
public static IServiceCollection AddDropboxLoginProviderService(this IServiceCollection services)
|
||||
{
|
||||
services.TryAddScoped<DropboxLoginProvider>();
|
||||
return services
|
||||
.AddConsumerFactoryService()
|
||||
.AddKafkaService()
|
||||
.AddTenantManagerService()
|
||||
.AddCoreBaseSettingsService()
|
||||
.AddCoreSettingsService();
|
||||
}
|
||||
}
|
||||
}
|
@ -38,6 +38,8 @@ using ASC.Security.Cryptography;
|
||||
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.DependencyInjection.Extensions;
|
||||
|
||||
using Newtonsoft.Json.Linq;
|
||||
|
||||
@ -180,4 +182,20 @@ namespace ASC.FederatedLogin.LoginProviders
|
||||
public bool primary = false;
|
||||
}
|
||||
}
|
||||
|
||||
public static class GoogleLoginProviderExtension
|
||||
{
|
||||
public static IServiceCollection AddGoogleLoginProviderService(this IServiceCollection services)
|
||||
{
|
||||
services.TryAddScoped<GoogleLoginProvider>();
|
||||
return services
|
||||
.AddConsumerFactoryService()
|
||||
.AddKafkaService()
|
||||
.AddTenantManagerService()
|
||||
.AddCoreBaseSettingsService()
|
||||
.AddCoreSettingsService()
|
||||
.AddSignatureService()
|
||||
.AddInstanceCryptoService();
|
||||
}
|
||||
}
|
||||
}
|
@ -31,6 +31,8 @@ using ASC.Core;
|
||||
using ASC.Core.Common.Configuration;
|
||||
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.DependencyInjection.Extensions;
|
||||
|
||||
namespace ASC.FederatedLogin.LoginProviders
|
||||
{
|
||||
@ -75,4 +77,18 @@ namespace ASC.FederatedLogin.LoginProviders
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
public static class OneDriveLoginProviderExtension
|
||||
{
|
||||
public static IServiceCollection AddOneDriveLoginProviderService(this IServiceCollection services)
|
||||
{
|
||||
services.TryAddScoped<OneDriveLoginProvider>();
|
||||
return services
|
||||
.AddConsumerFactoryService()
|
||||
.AddKafkaService()
|
||||
.AddTenantManagerService()
|
||||
.AddCoreBaseSettingsService()
|
||||
.AddCoreSettingsService();
|
||||
}
|
||||
}
|
||||
}
|
@ -31,6 +31,9 @@ using ASC.Core;
|
||||
using ASC.Core.Common.Settings;
|
||||
using ASC.Files.Core;
|
||||
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.DependencyInjection.Extensions;
|
||||
|
||||
namespace ASC.Web.Files.Classes
|
||||
{
|
||||
[Serializable]
|
||||
@ -221,4 +224,14 @@ namespace ASC.Web.Files.Classes
|
||||
get { return !CoreBaseSettings.Personal && SettingsManager.Load<FilesSettings>().StoreForcesaveSetting; }
|
||||
}
|
||||
}
|
||||
public static class FilesSettingsHelperExtention
|
||||
{
|
||||
public static IServiceCollection AddFilesSettingsHelperService(this IServiceCollection services)
|
||||
{
|
||||
services.TryAddScoped<SettingsManager>();
|
||||
return services
|
||||
.AddSettingsManagerService()
|
||||
.AddCoreBaseSettingsService();
|
||||
}
|
||||
}
|
||||
}
|
@ -30,9 +30,13 @@ using System.Linq;
|
||||
|
||||
using ASC.Data.Storage;
|
||||
using ASC.Files.Core;
|
||||
using ASC.Files.Core.Data;
|
||||
using ASC.Files.Core.Security;
|
||||
using ASC.Web.Files.Classes;
|
||||
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.DependencyInjection.Extensions;
|
||||
|
||||
namespace ASC.Web.Files.Api
|
||||
{
|
||||
public class FilesIntegration
|
||||
@ -155,4 +159,15 @@ namespace ASC.Web.Files.Api
|
||||
return result;
|
||||
}
|
||||
}
|
||||
public static class FilesIntegrationExtension
|
||||
{
|
||||
public static IServiceCollection AddFilesIntegrationService(this IServiceCollection services)
|
||||
{
|
||||
services.TryAddScoped<FilesIntegration>();
|
||||
return services
|
||||
.AddDaoFactoryService()
|
||||
.AddFileSecurityService()
|
||||
.AddGlobalStoreService();
|
||||
}
|
||||
}
|
||||
}
|
@ -39,6 +39,7 @@ using ASC.FederatedLogin;
|
||||
using ASC.FederatedLogin.Helpers;
|
||||
using ASC.FederatedLogin.LoginProviders;
|
||||
using ASC.Files.Core;
|
||||
using ASC.Files.Core.Data;
|
||||
using ASC.Files.Core.Security;
|
||||
using ASC.MessagingSystem;
|
||||
using ASC.Web.Core.Files;
|
||||
@ -56,6 +57,7 @@ using DocuSign.eSign.Client;
|
||||
using DocuSign.eSign.Model;
|
||||
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.DependencyInjection.Extensions;
|
||||
using Microsoft.Extensions.Options;
|
||||
|
||||
using Newtonsoft.Json;
|
||||
@ -163,7 +165,7 @@ namespace ASC.Web.Files.Helpers
|
||||
public FileMarker FileMarker { get; }
|
||||
public GlobalFolderHelper GlobalFolderHelper { get; }
|
||||
public FilesMessageService FilesMessageService { get; }
|
||||
public DocuSignHandler DocuSignHandler { get; }
|
||||
public FilesLinkUtility FilesLinkUtility { get; }
|
||||
public IServiceProvider ServiceProvider { get; }
|
||||
|
||||
public DocuSignHelper(
|
||||
@ -179,7 +181,7 @@ namespace ASC.Web.Files.Helpers
|
||||
FileMarker fileMarker,
|
||||
GlobalFolderHelper globalFolderHelper,
|
||||
FilesMessageService filesMessageService,
|
||||
DocuSignHandler docuSignHandler,
|
||||
FilesLinkUtility filesLinkUtility,
|
||||
IServiceProvider serviceProvider)
|
||||
{
|
||||
DocuSignToken = docuSignToken;
|
||||
@ -193,7 +195,7 @@ namespace ASC.Web.Files.Helpers
|
||||
FileMarker = fileMarker;
|
||||
GlobalFolderHelper = globalFolderHelper;
|
||||
FilesMessageService = filesMessageService;
|
||||
DocuSignHandler = docuSignHandler;
|
||||
FilesLinkUtility = filesLinkUtility;
|
||||
ServiceProvider = serviceProvider;
|
||||
Log = options.CurrentValue;
|
||||
}
|
||||
@ -315,7 +317,7 @@ namespace ASC.Web.Files.Helpers
|
||||
// new RecipientEvent {RecipientEventStatusCode = "AuthenticationFailed"},
|
||||
// new RecipientEvent {RecipientEventStatusCode = "AutoResponded"},
|
||||
// },
|
||||
Url = BaseCommonLinkUtility.GetFullAbsolutePath(DocuSignHandler.Path + "?" + FilesLinkUtility.Action + "=webhook"),
|
||||
Url = BaseCommonLinkUtility.GetFullAbsolutePath(DocuSignHandler.Path(FilesLinkUtility) + "?" + FilesLinkUtility.Action + "=webhook"),
|
||||
};
|
||||
|
||||
Log.Debug("DocuSign hook url: " + eventNotification.Url);
|
||||
@ -367,7 +369,7 @@ namespace ASC.Web.Files.Helpers
|
||||
var envelopeId = envelopeSummary.EnvelopeId;
|
||||
var url = envelopesApi.CreateSenderView(accountId, envelopeId, new ReturnUrlRequest
|
||||
{
|
||||
ReturnUrl = BaseCommonLinkUtility.GetFullAbsolutePath(DocuSignHandler.Path + "?" + FilesLinkUtility.Action + "=redirect")
|
||||
ReturnUrl = BaseCommonLinkUtility.GetFullAbsolutePath(DocuSignHandler.Path(FilesLinkUtility) + "?" + FilesLinkUtility.Action + "=redirect")
|
||||
});
|
||||
Log.Debug("DocuSign senderView: " + url.Url);
|
||||
|
||||
@ -472,4 +474,36 @@ namespace ASC.Web.Files.Helpers
|
||||
Declined,
|
||||
Voided,
|
||||
}
|
||||
|
||||
public static class DocuSignHelperExtension
|
||||
{
|
||||
public static IServiceCollection AddDocuSignTokenService(this IServiceCollection services)
|
||||
{
|
||||
services.TryAddScoped<DocuSignToken>();
|
||||
return services
|
||||
.AddAuthContextService()
|
||||
.AddDocuSignLoginProviderService()
|
||||
.AddTokenHelperService();
|
||||
}
|
||||
|
||||
public static IServiceCollection AddDocuSignHelperService(this IServiceCollection services)
|
||||
{
|
||||
services.TryAddScoped<DocuSignHelper>();
|
||||
|
||||
return services
|
||||
.AddDocuSignLoginProviderService()
|
||||
.AddFileSecurityService()
|
||||
.AddDaoFactoryService()
|
||||
.AddBaseCommonLinkUtilityService()
|
||||
.AddUserManagerService()
|
||||
.AddAuthContextService()
|
||||
.AddDisplayUserSettingsService()
|
||||
.AddFileMarkerService()
|
||||
.AddGlobalFolderHelperService()
|
||||
.AddFilesMessageService()
|
||||
.AddDocuSignTokenService()
|
||||
.AddFilesLinkUtilityService()
|
||||
;
|
||||
}
|
||||
}
|
||||
}
|
@ -31,6 +31,8 @@ using ASC.Files.Core;
|
||||
using ASC.MessagingSystem;
|
||||
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.DependencyInjection.Extensions;
|
||||
using Microsoft.Extensions.Options;
|
||||
|
||||
namespace ASC.Web.Files.Helpers
|
||||
@ -118,4 +120,15 @@ namespace ASC.Web.Files.Helpers
|
||||
MessageService.Send(initiator, action, MessageTarget.Create(entry.ID), description);
|
||||
}
|
||||
}
|
||||
|
||||
public static class FilesMessageServiceExtension
|
||||
{
|
||||
public static IServiceCollection AddFilesMessageService(this IServiceCollection services)
|
||||
{
|
||||
services.TryAddScoped<FilesMessageService>();
|
||||
return services
|
||||
.AddMessageTargetService()
|
||||
.AddMessageServiceService();
|
||||
}
|
||||
}
|
||||
}
|
@ -30,8 +30,11 @@ using System.Linq;
|
||||
|
||||
using ASC.FederatedLogin.LoginProviders;
|
||||
using ASC.Files.Core;
|
||||
using ASC.Files.Core.Data;
|
||||
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.DependencyInjection.Extensions;
|
||||
|
||||
namespace ASC.Web.Files.Helpers
|
||||
{
|
||||
@ -154,4 +157,19 @@ namespace ASC.Web.Files.Helpers
|
||||
}
|
||||
}
|
||||
}
|
||||
public static class ThirdpartyConfigurationExtension
|
||||
{
|
||||
public static IServiceCollection AddThirdpartyConfigurationService(this IServiceCollection services)
|
||||
{
|
||||
services.TryAddScoped<ThirdpartyConfiguration>();
|
||||
return services
|
||||
.AddDaoFactoryService()
|
||||
.AddDocuSignLoginProviderService()
|
||||
.AddBoxLoginProviderService()
|
||||
.AddDropboxLoginProviderService()
|
||||
.AddOneDriveLoginProviderService()
|
||||
.AddGoogleLoginProviderService()
|
||||
;
|
||||
}
|
||||
}
|
||||
}
|
@ -42,23 +42,23 @@ using ASC.Web.Files.Services.NotifyService;
|
||||
using ASC.Web.Studio.Utility;
|
||||
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.DependencyInjection.Extensions;
|
||||
using Microsoft.Extensions.Options;
|
||||
|
||||
namespace ASC.Web.Files.HttpHandlers
|
||||
{
|
||||
public class DocuSignHandler
|
||||
{
|
||||
public string Path
|
||||
public static string Path(FilesLinkUtility filesLinkUtility)
|
||||
{
|
||||
get { return FilesLinkUtility.FilesBaseAbsolutePath + "httphandlers/docusignhandler.ashx"; }
|
||||
return filesLinkUtility.FilesBaseAbsolutePath + "httphandlers/docusignhandler.ashx";
|
||||
}
|
||||
|
||||
private ILog Log { get; set; }
|
||||
|
||||
public RequestDelegate Next { get; }
|
||||
|
||||
public FilesLinkUtility FilesLinkUtility { get; }
|
||||
|
||||
public TenantExtra TenantExtra { get; }
|
||||
public DocuSignHelper DocuSignHelper { get; }
|
||||
public SecurityContext SecurityContext { get; }
|
||||
@ -67,14 +67,12 @@ namespace ASC.Web.Files.HttpHandlers
|
||||
public DocuSignHandler(
|
||||
RequestDelegate next,
|
||||
IOptionsMonitor<ILog> optionsMonitor,
|
||||
FilesLinkUtility filesLinkUtility,
|
||||
TenantExtra tenantExtra,
|
||||
DocuSignHelper docuSignHelper,
|
||||
SecurityContext securityContext,
|
||||
NotifyClient notifyClient)
|
||||
{
|
||||
Next = next;
|
||||
FilesLinkUtility = filesLinkUtility;
|
||||
TenantExtra = tenantExtra;
|
||||
DocuSignHelper = docuSignHelper;
|
||||
SecurityContext = securityContext;
|
||||
@ -239,4 +237,18 @@ namespace ASC.Web.Files.HttpHandlers
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
public static class DocuSignHandlerExtension
|
||||
{
|
||||
public static IServiceCollection AddDocuSignHandlerService(this IServiceCollection services)
|
||||
{
|
||||
services.TryAddScoped<DocuSignHandler>();
|
||||
return services
|
||||
.AddFilesLinkUtilityService()
|
||||
.AddTenantExtraService()
|
||||
.AddDocuSignHelperService()
|
||||
.AddSecurityContextService()
|
||||
.AddNotifyClientService();
|
||||
}
|
||||
}
|
||||
}
|
@ -40,6 +40,8 @@ using ASC.Web.Files.Classes;
|
||||
using ASC.Web.Files.Resources;
|
||||
using ASC.Web.Studio.Utility;
|
||||
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.DependencyInjection.Extensions;
|
||||
using Microsoft.Extensions.Options;
|
||||
|
||||
using Newtonsoft.Json;
|
||||
@ -377,4 +379,21 @@ namespace ASC.Web.Files.Services.DocumentService
|
||||
return new Exception(error, ex);
|
||||
}
|
||||
}
|
||||
public static class DocumentServiceConnectorExtension
|
||||
{
|
||||
public static IServiceCollection AddDocumentServiceConnectorService(this IServiceCollection services)
|
||||
{
|
||||
services.TryAddScoped<DocumentServiceConnector>();
|
||||
|
||||
return services
|
||||
.AddFilesLinkUtilityService()
|
||||
.AddFileUtilityService()
|
||||
.AddPathProviderService()
|
||||
.AddGlobalStoreService()
|
||||
.AddBaseCommonLinkUtilityService()
|
||||
.AddTenantManagerService()
|
||||
.AddTenantExtraService()
|
||||
.AddCoreSettingsService();
|
||||
}
|
||||
}
|
||||
}
|
@ -33,6 +33,7 @@ using System.Text;
|
||||
using ASC.Core;
|
||||
using ASC.Core.Users;
|
||||
using ASC.Files.Core;
|
||||
using ASC.Files.Core.Data;
|
||||
using ASC.Files.Core.Security;
|
||||
using ASC.Security.Cryptography;
|
||||
using ASC.Web.Core.Files;
|
||||
@ -43,6 +44,9 @@ using ASC.Web.Studio.Core;
|
||||
|
||||
using JWT;
|
||||
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.DependencyInjection.Extensions;
|
||||
|
||||
using File = ASC.Files.Core.File;
|
||||
using FileShare = ASC.Files.Core.Security.FileShare;
|
||||
|
||||
@ -56,11 +60,11 @@ namespace ASC.Web.Files.Services.DocumentService
|
||||
public AuthContext AuthContext { get; }
|
||||
public FileSecurity FileSecurity { get; }
|
||||
public SetupInfo SetupInfo { get; }
|
||||
public EntryManager EntryManager { get; }
|
||||
public FileUtility FileUtility { get; }
|
||||
public MachinePseudoKeys MachinePseudoKeys { get; }
|
||||
public Global Global { get; }
|
||||
public DocumentServiceConnector DocumentServiceConnector { get; }
|
||||
public LockerManager LockerManager { get; }
|
||||
public IServiceProvider ServiceProvider { get; }
|
||||
|
||||
public DocumentServiceHelper(
|
||||
@ -70,11 +74,11 @@ namespace ASC.Web.Files.Services.DocumentService
|
||||
AuthContext authContext,
|
||||
FileSecurity fileSecurity,
|
||||
SetupInfo setupInfo,
|
||||
EntryManager entryManager,
|
||||
FileUtility fileUtility,
|
||||
MachinePseudoKeys machinePseudoKeys,
|
||||
Global global,
|
||||
DocumentServiceConnector documentServiceConnector,
|
||||
LockerManager lockerManager,
|
||||
IServiceProvider serviceProvider)
|
||||
{
|
||||
DaoFactory = daoFactory;
|
||||
@ -83,11 +87,11 @@ namespace ASC.Web.Files.Services.DocumentService
|
||||
AuthContext = authContext;
|
||||
FileSecurity = fileSecurity;
|
||||
SetupInfo = setupInfo;
|
||||
EntryManager = entryManager;
|
||||
FileUtility = fileUtility;
|
||||
MachinePseudoKeys = machinePseudoKeys;
|
||||
Global = global;
|
||||
DocumentServiceConnector = documentServiceConnector;
|
||||
LockerManager = lockerManager;
|
||||
ServiceProvider = serviceProvider;
|
||||
}
|
||||
|
||||
@ -185,7 +189,7 @@ namespace ASC.Web.Files.Services.DocumentService
|
||||
|
||||
string strError = null;
|
||||
if ((editPossible || reviewPossible || fillFormsPossible || commentPossible)
|
||||
&& EntryManager.FileLockedForMe(file.ID))
|
||||
&& LockerManager.FileLockedForMe(file.ID))
|
||||
{
|
||||
if (tryEdit)
|
||||
{
|
||||
@ -373,4 +377,23 @@ namespace ASC.Web.Files.Services.DocumentService
|
||||
return DocumentServiceConnector.Command(Web.Core.Files.DocumentService.CommandMethod.Meta, docKeyForTrack, file.ID, meta: meta);
|
||||
}
|
||||
}
|
||||
public static class DocumentServiceHelperExtention
|
||||
{
|
||||
public static IServiceCollection AddDocumentServiceHelperService(this IServiceCollection services)
|
||||
{
|
||||
services.TryAddScoped<DocumentServiceHelper>();
|
||||
return services
|
||||
.AddDaoFactoryService()
|
||||
.AddFileShareLinkService()
|
||||
.AddUserManagerService()
|
||||
.AddAuthContextService()
|
||||
.AddFileSecurityService()
|
||||
.AddSetupInfo()
|
||||
.AddLockerManagerService()
|
||||
.AddFileUtilityService()
|
||||
.AddMachinePseudoKeysService()
|
||||
.AddGlobalService()
|
||||
.AddDocumentServiceConnectorService();
|
||||
}
|
||||
}
|
||||
}
|
@ -31,6 +31,7 @@ using System.Globalization;
|
||||
using ASC.Core;
|
||||
using ASC.Core.Common;
|
||||
using ASC.Files.Core;
|
||||
using ASC.Files.Core.Data;
|
||||
using ASC.Files.Core.Security;
|
||||
using ASC.Notify.Patterns;
|
||||
using ASC.Web.Core.Files;
|
||||
@ -38,6 +39,7 @@ using ASC.Web.Files.Classes;
|
||||
using ASC.Web.Files.Resources;
|
||||
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.DependencyInjection.Extensions;
|
||||
|
||||
namespace ASC.Web.Files.Services.NotifyService
|
||||
{
|
||||
@ -207,4 +209,24 @@ namespace ASC.Web.Files.Services.NotifyService
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static class NotifyClientExtension
|
||||
{
|
||||
public static IServiceCollection AddNotifyClientService(this IServiceCollection services)
|
||||
{
|
||||
services.TryAddScoped<NotifyClient>();
|
||||
|
||||
return services
|
||||
.AddFilesNotifySourceService()
|
||||
.AddBaseCommonLinkUtilityService()
|
||||
.AddUserManagerService()
|
||||
.AddSecurityContextService()
|
||||
.AddFilesLinkUtilityService()
|
||||
.AddFileUtilityService()
|
||||
.AddPathProviderService()
|
||||
.AddTenantManagerService()
|
||||
.AddDaoFactoryService()
|
||||
;
|
||||
}
|
||||
}
|
||||
}
|
@ -27,10 +27,14 @@
|
||||
using System;
|
||||
|
||||
using ASC.Core;
|
||||
using ASC.Core.Notify;
|
||||
using ASC.Notify.Model;
|
||||
using ASC.Notify.Patterns;
|
||||
using ASC.Notify.Recipients;
|
||||
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.DependencyInjection.Extensions;
|
||||
|
||||
using NotifySourceBase = ASC.Core.Notify.NotifySource;
|
||||
|
||||
namespace ASC.Web.Files.Services.NotifyService
|
||||
@ -54,4 +58,17 @@ namespace ASC.Web.Files.Services.NotifyService
|
||||
return new XmlPatternProvider2(FilesPatternResource.patterns);
|
||||
}
|
||||
}
|
||||
|
||||
public static class FilesNotifySourceExtension
|
||||
{
|
||||
public static IServiceCollection AddFilesNotifySourceService(this IServiceCollection services)
|
||||
{
|
||||
services.TryAddScoped<NotifySource>();
|
||||
|
||||
return services
|
||||
.AddUserManagerService()
|
||||
.AddRecipientProviderImplService()
|
||||
.AddSubscriptionManagerService();
|
||||
}
|
||||
}
|
||||
}
|
@ -51,6 +51,7 @@ using ASC.MessagingSystem;
|
||||
using ASC.Web.Api.Routing;
|
||||
using ASC.Web.Core.Files;
|
||||
using ASC.Web.Core.Users;
|
||||
using ASC.Web.Core.Utility;
|
||||
using ASC.Web.Files.Classes;
|
||||
using ASC.Web.Files.Core.Search;
|
||||
using ASC.Web.Files.Helpers;
|
||||
@ -2207,28 +2208,28 @@ namespace ASC.Web.Files.Services.WCFService
|
||||
.AddPathProviderService()
|
||||
.AddDaoFactoryService()
|
||||
.AddFileMarkerService()
|
||||
.AddFilesSettingsHelperService()
|
||||
.AddFileUtilityService()
|
||||
.AddFileSecurityService()
|
||||
.AddFilesMessageService()
|
||||
.AddFileShareLinkService()
|
||||
.AddDocumentServiceConnectorService()
|
||||
.AddDocuSignLoginProviderService()
|
||||
.AddEntryManagerService()
|
||||
.AddDocumentServiceHelperService()
|
||||
.AddThirdpartyConfigurationService()
|
||||
.AddUrlShortener()
|
||||
.AddDocuSignHelperService()
|
||||
.AddDocuSignTokenService()
|
||||
.AddFileConverterService()
|
||||
.AddNotifyClientService()
|
||||
;
|
||||
|
||||
/*
|
||||
FilesSettingsHelper filesSettingsHelper,
|
||||
FileUtility fileUtility,
|
||||
DocuSignLoginProvider docuSignLoginProvider,
|
||||
FileSecurity fileSecurity,
|
||||
SocketManager socketManager,
|
||||
EntryManager entryManager,
|
||||
FilesMessageService filesMessageService,
|
||||
DocumentServiceTrackerHelper documentServiceTrackerHelper,
|
||||
DocuSignToken docuSignToken,
|
||||
DocuSignHelper docuSignHelper,
|
||||
FileShareLink fileShareLink,
|
||||
FileConverter fileConverter,
|
||||
DocumentServiceHelper documentServiceHelper,
|
||||
ThirdpartyConfiguration thirdpartyConfiguration,
|
||||
DocumentServiceConnector documentServiceConnector,
|
||||
FileSharing fileSharing,
|
||||
NotifyClient notifyClient,
|
||||
FileOperationsManagerHelper fileOperationsManagerHelper,
|
||||
UrlShortener urlShortener,
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
@ -37,6 +37,8 @@ using ASC.Files.Core;
|
||||
using ASC.Files.Core.EF;
|
||||
using ASC.Security.Cryptography;
|
||||
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.DependencyInjection.Extensions;
|
||||
using Microsoft.Extensions.Options;
|
||||
|
||||
namespace ASC.Web.Files.ThirdPartyApp
|
||||
@ -161,4 +163,17 @@ namespace ASC.Web.Files.ThirdPartyApp
|
||||
return string.IsNullOrEmpty(token) ? null : Token.FromJson(InstanceCrypto.Decrypt(token));
|
||||
}
|
||||
}
|
||||
|
||||
public static class TokenHelperExtension
|
||||
{
|
||||
public static IServiceCollection AddTokenHelperService(this IServiceCollection services)
|
||||
{
|
||||
services.TryAddScoped<TokenHelper>();
|
||||
return services
|
||||
.AddFilesDbContextService()
|
||||
.AddInstanceCryptoService()
|
||||
.AddAuthContextService()
|
||||
.AddTenantManagerService();
|
||||
}
|
||||
}
|
||||
}
|
@ -38,6 +38,7 @@ using ASC.Common.Logging;
|
||||
using ASC.Core;
|
||||
using ASC.Core.Users;
|
||||
using ASC.Files.Core;
|
||||
using ASC.Files.Core.Data;
|
||||
using ASC.Files.Core.Security;
|
||||
using ASC.Web.Core.Files;
|
||||
using ASC.Web.Files.Api;
|
||||
@ -47,9 +48,9 @@ using ASC.Web.Files.Helpers;
|
||||
using ASC.Web.Files.Resources;
|
||||
using ASC.Web.Files.Services.DocumentService;
|
||||
using ASC.Web.Files.ThirdPartyApp;
|
||||
using ASC.Web.Studio.Core;
|
||||
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.DependencyInjection.Extensions;
|
||||
using Microsoft.Extensions.Options;
|
||||
|
||||
using Newtonsoft.Json.Linq;
|
||||
@ -59,6 +60,38 @@ using FileShare = ASC.Files.Core.Security.FileShare;
|
||||
|
||||
namespace ASC.Web.Files.Utils
|
||||
{
|
||||
public class LockerManager
|
||||
{
|
||||
public AuthContext AuthContext { get; }
|
||||
public IDaoFactory DaoFactory { get; }
|
||||
|
||||
public LockerManager(AuthContext authContext, IDaoFactory daoFactory)
|
||||
{
|
||||
AuthContext = authContext;
|
||||
DaoFactory = daoFactory;
|
||||
}
|
||||
|
||||
public bool FileLockedForMe(object fileId, Guid userId = default)
|
||||
{
|
||||
var app = ThirdPartySelector.GetAppByFileId(fileId.ToString());
|
||||
if (app != null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
userId = userId == default ? AuthContext.CurrentAccount.ID : userId;
|
||||
var tagDao = DaoFactory.TagDao;
|
||||
var lockedBy = FileLockedBy(fileId, tagDao);
|
||||
return lockedBy != Guid.Empty && lockedBy != userId;
|
||||
}
|
||||
|
||||
public Guid FileLockedBy(object fileId, ITagDao tagDao)
|
||||
{
|
||||
var tagLock = tagDao.GetTags(fileId, FileEntryType.File, TagType.Locked).FirstOrDefault();
|
||||
return tagLock != null ? tagLock.Owner : Guid.Empty;
|
||||
}
|
||||
}
|
||||
|
||||
public class EntryManager
|
||||
{
|
||||
private const string UPDATE_LIST = "filesUpdateList";
|
||||
@ -75,13 +108,13 @@ namespace ASC.Web.Files.Utils
|
||||
public Global Global { get; }
|
||||
public GlobalStore GlobalStore { get; }
|
||||
public CoreBaseSettings CoreBaseSettings { get; }
|
||||
public SetupInfo SetupInfo { get; }
|
||||
public FilesSettingsHelper FilesSettingsHelper { get; }
|
||||
public UserManager UserManager { get; }
|
||||
public FileShareLink FileShareLink { get; }
|
||||
public DocumentServiceHelper DocumentServiceHelper { get; }
|
||||
public ThirdpartyConfiguration ThirdpartyConfiguration { get; }
|
||||
public DocumentServiceConnector DocumentServiceConnector { get; }
|
||||
public LockerManager LockerManager { get; }
|
||||
public IServiceProvider ServiceProvider { get; }
|
||||
public ILog Logger { get; }
|
||||
|
||||
@ -97,7 +130,6 @@ namespace ASC.Web.Files.Utils
|
||||
Global global,
|
||||
GlobalStore globalStore,
|
||||
CoreBaseSettings coreBaseSettings,
|
||||
SetupInfo setupInfo,
|
||||
FilesSettingsHelper filesSettingsHelper,
|
||||
UserManager userManager,
|
||||
IOptionsMonitor<ILog> optionsMonitor,
|
||||
@ -105,6 +137,7 @@ namespace ASC.Web.Files.Utils
|
||||
DocumentServiceHelper documentServiceHelper,
|
||||
ThirdpartyConfiguration thirdpartyConfiguration,
|
||||
DocumentServiceConnector documentServiceConnector,
|
||||
LockerManager lockerManager,
|
||||
IServiceProvider serviceProvider)
|
||||
{
|
||||
DaoFactory = daoFactory;
|
||||
@ -118,13 +151,13 @@ namespace ASC.Web.Files.Utils
|
||||
Global = global;
|
||||
GlobalStore = globalStore;
|
||||
CoreBaseSettings = coreBaseSettings;
|
||||
SetupInfo = setupInfo;
|
||||
FilesSettingsHelper = filesSettingsHelper;
|
||||
UserManager = userManager;
|
||||
FileShareLink = fileShareLink;
|
||||
DocumentServiceHelper = documentServiceHelper;
|
||||
ThirdpartyConfiguration = thirdpartyConfiguration;
|
||||
DocumentServiceConnector = documentServiceConnector;
|
||||
LockerManager = lockerManager;
|
||||
ServiceProvider = serviceProvider;
|
||||
Logger = optionsMonitor.CurrentValue;
|
||||
cache = AscCache.Memory;
|
||||
@ -590,22 +623,12 @@ namespace ASC.Web.Files.Utils
|
||||
|
||||
public bool FileLockedForMe(object fileId, Guid userId = default)
|
||||
{
|
||||
var app = ThirdPartySelector.GetAppByFileId(fileId.ToString());
|
||||
if (app != null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
userId = userId == default ? AuthContext.CurrentAccount.ID : userId;
|
||||
var tagDao = DaoFactory.TagDao;
|
||||
var lockedBy = FileLockedBy(fileId, tagDao);
|
||||
return lockedBy != Guid.Empty && lockedBy != userId;
|
||||
return LockerManager.FileLockedForMe(fileId, userId);
|
||||
}
|
||||
|
||||
public Guid FileLockedBy(object fileId, ITagDao tagDao)
|
||||
{
|
||||
var tagLock = tagDao.GetTags(fileId, FileEntryType.File, TagType.Locked).FirstOrDefault();
|
||||
return tagLock != null ? tagLock.Owner : Guid.Empty;
|
||||
return LockerManager.FileLockedBy(fileId, tagDao);
|
||||
}
|
||||
|
||||
|
||||
@ -1000,4 +1023,43 @@ namespace ASC.Web.Files.Utils
|
||||
folderDao.ReassignFolders(folderIds.ToArray(), toUserId);
|
||||
}
|
||||
}
|
||||
|
||||
public static class EntryManagerExtension
|
||||
{
|
||||
public static IServiceCollection AddEntryManagerService(this IServiceCollection services)
|
||||
{
|
||||
services.TryAddScoped<EntryManager>();
|
||||
return services
|
||||
.AddDaoFactoryService()
|
||||
.AddFileSecurityService()
|
||||
.AddGlobalFolderHelperService()
|
||||
.AddPathProviderService()
|
||||
.AddAuthContextService()
|
||||
.AddFileMarkerService()
|
||||
.AddFileUtilityService()
|
||||
.AddGlobalService()
|
||||
.AddGlobalStoreService()
|
||||
.AddCoreBaseSettingsService()
|
||||
.AddFilesSettingsHelperService()
|
||||
.AddUserManagerService()
|
||||
.AddFileShareLinkService()
|
||||
.AddDocumentServiceConnectorService()
|
||||
.AddDocumentServiceHelperService()
|
||||
.AddFilesIntegrationService()
|
||||
.AddThirdpartyConfigurationService()
|
||||
.AddLockerManagerService()
|
||||
;
|
||||
}
|
||||
}
|
||||
|
||||
public static class LockerManagerExtension
|
||||
{
|
||||
public static IServiceCollection AddLockerManagerService(this IServiceCollection services)
|
||||
{
|
||||
services.TryAddScoped<LockerManager>();
|
||||
return services
|
||||
.AddAuthContextService()
|
||||
.AddDaoFactoryService();
|
||||
}
|
||||
}
|
||||
}
|
@ -40,6 +40,7 @@ using ASC.Common.Logging;
|
||||
using ASC.Common.Security.Authentication;
|
||||
using ASC.Core;
|
||||
using ASC.Files.Core;
|
||||
using ASC.Files.Core.Data;
|
||||
using ASC.Files.Core.Security;
|
||||
using ASC.MessagingSystem;
|
||||
using ASC.Web.Core.Files;
|
||||
@ -53,6 +54,7 @@ using ASC.Web.Studio.Core;
|
||||
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.DependencyInjection.Extensions;
|
||||
using Microsoft.Extensions.Options;
|
||||
|
||||
using File = ASC.Files.Core.File;
|
||||
@ -724,4 +726,29 @@ namespace ASC.Web.Files.Utils
|
||||
public string Password { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
public static class FileConverterExtension
|
||||
{
|
||||
public static IServiceCollection AddFileConverterService(this IServiceCollection services)
|
||||
{
|
||||
services.TryAddScoped<FileConverter>();
|
||||
return services
|
||||
.AddFilesLinkUtilityService()
|
||||
.AddFileUtilityService()
|
||||
.AddDaoFactoryService()
|
||||
.AddSetupInfo()
|
||||
.AddPathProviderService()
|
||||
.AddFileSecurityService()
|
||||
.AddFileMarkerService()
|
||||
.AddTenantManagerService()
|
||||
.AddAuthContextService()
|
||||
.AddEntryManagerService()
|
||||
.AddFilesSettingsHelperService()
|
||||
.AddGlobalFolderHelperService()
|
||||
.AddFilesMessageService()
|
||||
.AddFileShareLinkService()
|
||||
.AddDocumentServiceHelperService()
|
||||
.AddDocumentServiceConnectorService();
|
||||
}
|
||||
}
|
||||
}
|
@ -33,6 +33,9 @@ using ASC.Files.Core.Security;
|
||||
using ASC.Web.Core.Files;
|
||||
using ASC.Web.Files.Classes;
|
||||
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.DependencyInjection.Extensions;
|
||||
|
||||
using File = ASC.Files.Core.File;
|
||||
using FileShare = ASC.Files.Core.Security.FileShare;
|
||||
|
||||
@ -110,4 +113,17 @@ namespace ASC.Web.Files.Utils
|
||||
return FileShare.Restrict;
|
||||
}
|
||||
}
|
||||
public static class FileShareLinkExtension
|
||||
{
|
||||
public static IServiceCollection AddFileShareLinkService(this IServiceCollection services)
|
||||
{
|
||||
services.TryAddScoped<FileShareLink>();
|
||||
return services
|
||||
.AddFilesLinkUtilityService()
|
||||
.AddFileUtilityService()
|
||||
.AddBaseCommonLinkUtilityService()
|
||||
.AddGlobalService()
|
||||
.AddFileSecurityService();
|
||||
}
|
||||
}
|
||||
}
|
@ -34,13 +34,18 @@ using ASC.Core.Common.EF;
|
||||
using ASC.Core.Common.EF.Context;
|
||||
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.DependencyInjection.Extensions;
|
||||
|
||||
namespace ASC.Web.Core.Files
|
||||
{
|
||||
public class FileUtility
|
||||
{
|
||||
public DbContextManager<FilesDbContext> FilesDbContext { get; set; }
|
||||
public FileUtility(IConfiguration configuration, FilesLinkUtility filesLinkUtility, DbContextManager<FilesDbContext> dbContextManager)
|
||||
public FileUtility(
|
||||
IConfiguration configuration,
|
||||
FilesLinkUtility filesLinkUtility,
|
||||
DbContextManager<FilesDbContext> dbContextManager)
|
||||
{
|
||||
Configuration = configuration;
|
||||
FilesLinkUtility = filesLinkUtility;
|
||||
@ -374,4 +379,15 @@ namespace ASC.Web.Core.Files
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
public static class FileUtilityExtention
|
||||
{
|
||||
public static IServiceCollection AddFileUtilityService(this IServiceCollection services)
|
||||
{
|
||||
services.TryAddScoped<FileUtility>();
|
||||
return services
|
||||
.AddFilesLinkUtilityService()
|
||||
.AddFilesDbContextService();
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user