Files:DI
This commit is contained in:
parent
de4b4a0dde
commit
c0cc00bfbe
@ -31,6 +31,8 @@ using ASC.Core;
|
|||||||
using ASC.Core.Common.Configuration;
|
using ASC.Core.Common.Configuration;
|
||||||
|
|
||||||
using Microsoft.Extensions.Configuration;
|
using Microsoft.Extensions.Configuration;
|
||||||
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
|
using Microsoft.Extensions.DependencyInjection.Extensions;
|
||||||
|
|
||||||
namespace ASC.FederatedLogin.LoginProviders
|
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 ASC.FederatedLogin.Helpers;
|
||||||
|
|
||||||
using Microsoft.Extensions.Configuration;
|
using Microsoft.Extensions.Configuration;
|
||||||
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
|
using Microsoft.Extensions.DependencyInjection.Extensions;
|
||||||
|
|
||||||
namespace ASC.FederatedLogin.LoginProviders
|
namespace ASC.FederatedLogin.LoginProviders
|
||||||
{
|
{
|
||||||
@ -133,4 +135,17 @@ namespace ASC.FederatedLogin.LoginProviders
|
|||||||
return refreshed;
|
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 ASC.Core.Common.Configuration;
|
||||||
|
|
||||||
using Microsoft.Extensions.Configuration;
|
using Microsoft.Extensions.Configuration;
|
||||||
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
|
using Microsoft.Extensions.DependencyInjection.Extensions;
|
||||||
|
|
||||||
namespace ASC.FederatedLogin.LoginProviders
|
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.AspNetCore.Http;
|
||||||
using Microsoft.Extensions.Configuration;
|
using Microsoft.Extensions.Configuration;
|
||||||
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
|
using Microsoft.Extensions.DependencyInjection.Extensions;
|
||||||
|
|
||||||
using Newtonsoft.Json.Linq;
|
using Newtonsoft.Json.Linq;
|
||||||
|
|
||||||
@ -180,4 +182,20 @@ namespace ASC.FederatedLogin.LoginProviders
|
|||||||
public bool primary = false;
|
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 ASC.Core.Common.Configuration;
|
||||||
|
|
||||||
using Microsoft.Extensions.Configuration;
|
using Microsoft.Extensions.Configuration;
|
||||||
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
|
using Microsoft.Extensions.DependencyInjection.Extensions;
|
||||||
|
|
||||||
namespace ASC.FederatedLogin.LoginProviders
|
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.Core.Common.Settings;
|
||||||
using ASC.Files.Core;
|
using ASC.Files.Core;
|
||||||
|
|
||||||
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
|
using Microsoft.Extensions.DependencyInjection.Extensions;
|
||||||
|
|
||||||
namespace ASC.Web.Files.Classes
|
namespace ASC.Web.Files.Classes
|
||||||
{
|
{
|
||||||
[Serializable]
|
[Serializable]
|
||||||
@ -221,4 +224,14 @@ namespace ASC.Web.Files.Classes
|
|||||||
get { return !CoreBaseSettings.Personal && SettingsManager.Load<FilesSettings>().StoreForcesaveSetting; }
|
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.Data.Storage;
|
||||||
using ASC.Files.Core;
|
using ASC.Files.Core;
|
||||||
|
using ASC.Files.Core.Data;
|
||||||
using ASC.Files.Core.Security;
|
using ASC.Files.Core.Security;
|
||||||
using ASC.Web.Files.Classes;
|
using ASC.Web.Files.Classes;
|
||||||
|
|
||||||
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
|
using Microsoft.Extensions.DependencyInjection.Extensions;
|
||||||
|
|
||||||
namespace ASC.Web.Files.Api
|
namespace ASC.Web.Files.Api
|
||||||
{
|
{
|
||||||
public class FilesIntegration
|
public class FilesIntegration
|
||||||
@ -155,4 +159,15 @@ namespace ASC.Web.Files.Api
|
|||||||
return result;
|
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.Helpers;
|
||||||
using ASC.FederatedLogin.LoginProviders;
|
using ASC.FederatedLogin.LoginProviders;
|
||||||
using ASC.Files.Core;
|
using ASC.Files.Core;
|
||||||
|
using ASC.Files.Core.Data;
|
||||||
using ASC.Files.Core.Security;
|
using ASC.Files.Core.Security;
|
||||||
using ASC.MessagingSystem;
|
using ASC.MessagingSystem;
|
||||||
using ASC.Web.Core.Files;
|
using ASC.Web.Core.Files;
|
||||||
@ -56,6 +57,7 @@ using DocuSign.eSign.Client;
|
|||||||
using DocuSign.eSign.Model;
|
using DocuSign.eSign.Model;
|
||||||
|
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
|
using Microsoft.Extensions.DependencyInjection.Extensions;
|
||||||
using Microsoft.Extensions.Options;
|
using Microsoft.Extensions.Options;
|
||||||
|
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
@ -163,7 +165,7 @@ namespace ASC.Web.Files.Helpers
|
|||||||
public FileMarker FileMarker { get; }
|
public FileMarker FileMarker { get; }
|
||||||
public GlobalFolderHelper GlobalFolderHelper { get; }
|
public GlobalFolderHelper GlobalFolderHelper { get; }
|
||||||
public FilesMessageService FilesMessageService { get; }
|
public FilesMessageService FilesMessageService { get; }
|
||||||
public DocuSignHandler DocuSignHandler { get; }
|
public FilesLinkUtility FilesLinkUtility { get; }
|
||||||
public IServiceProvider ServiceProvider { get; }
|
public IServiceProvider ServiceProvider { get; }
|
||||||
|
|
||||||
public DocuSignHelper(
|
public DocuSignHelper(
|
||||||
@ -179,7 +181,7 @@ namespace ASC.Web.Files.Helpers
|
|||||||
FileMarker fileMarker,
|
FileMarker fileMarker,
|
||||||
GlobalFolderHelper globalFolderHelper,
|
GlobalFolderHelper globalFolderHelper,
|
||||||
FilesMessageService filesMessageService,
|
FilesMessageService filesMessageService,
|
||||||
DocuSignHandler docuSignHandler,
|
FilesLinkUtility filesLinkUtility,
|
||||||
IServiceProvider serviceProvider)
|
IServiceProvider serviceProvider)
|
||||||
{
|
{
|
||||||
DocuSignToken = docuSignToken;
|
DocuSignToken = docuSignToken;
|
||||||
@ -193,7 +195,7 @@ namespace ASC.Web.Files.Helpers
|
|||||||
FileMarker = fileMarker;
|
FileMarker = fileMarker;
|
||||||
GlobalFolderHelper = globalFolderHelper;
|
GlobalFolderHelper = globalFolderHelper;
|
||||||
FilesMessageService = filesMessageService;
|
FilesMessageService = filesMessageService;
|
||||||
DocuSignHandler = docuSignHandler;
|
FilesLinkUtility = filesLinkUtility;
|
||||||
ServiceProvider = serviceProvider;
|
ServiceProvider = serviceProvider;
|
||||||
Log = options.CurrentValue;
|
Log = options.CurrentValue;
|
||||||
}
|
}
|
||||||
@ -315,7 +317,7 @@ namespace ASC.Web.Files.Helpers
|
|||||||
// new RecipientEvent {RecipientEventStatusCode = "AuthenticationFailed"},
|
// new RecipientEvent {RecipientEventStatusCode = "AuthenticationFailed"},
|
||||||
// new RecipientEvent {RecipientEventStatusCode = "AutoResponded"},
|
// 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);
|
Log.Debug("DocuSign hook url: " + eventNotification.Url);
|
||||||
@ -367,7 +369,7 @@ namespace ASC.Web.Files.Helpers
|
|||||||
var envelopeId = envelopeSummary.EnvelopeId;
|
var envelopeId = envelopeSummary.EnvelopeId;
|
||||||
var url = envelopesApi.CreateSenderView(accountId, envelopeId, new ReturnUrlRequest
|
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);
|
Log.Debug("DocuSign senderView: " + url.Url);
|
||||||
|
|
||||||
@ -472,4 +474,36 @@ namespace ASC.Web.Files.Helpers
|
|||||||
Declined,
|
Declined,
|
||||||
Voided,
|
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 ASC.MessagingSystem;
|
||||||
|
|
||||||
using Microsoft.AspNetCore.Http;
|
using Microsoft.AspNetCore.Http;
|
||||||
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
|
using Microsoft.Extensions.DependencyInjection.Extensions;
|
||||||
using Microsoft.Extensions.Options;
|
using Microsoft.Extensions.Options;
|
||||||
|
|
||||||
namespace ASC.Web.Files.Helpers
|
namespace ASC.Web.Files.Helpers
|
||||||
@ -118,4 +120,15 @@ namespace ASC.Web.Files.Helpers
|
|||||||
MessageService.Send(initiator, action, MessageTarget.Create(entry.ID), description);
|
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.FederatedLogin.LoginProviders;
|
||||||
using ASC.Files.Core;
|
using ASC.Files.Core;
|
||||||
|
using ASC.Files.Core.Data;
|
||||||
|
|
||||||
using Microsoft.Extensions.Configuration;
|
using Microsoft.Extensions.Configuration;
|
||||||
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
|
using Microsoft.Extensions.DependencyInjection.Extensions;
|
||||||
|
|
||||||
namespace ASC.Web.Files.Helpers
|
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 ASC.Web.Studio.Utility;
|
||||||
|
|
||||||
using Microsoft.AspNetCore.Http;
|
using Microsoft.AspNetCore.Http;
|
||||||
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
|
using Microsoft.Extensions.DependencyInjection.Extensions;
|
||||||
using Microsoft.Extensions.Options;
|
using Microsoft.Extensions.Options;
|
||||||
|
|
||||||
namespace ASC.Web.Files.HttpHandlers
|
namespace ASC.Web.Files.HttpHandlers
|
||||||
{
|
{
|
||||||
public class DocuSignHandler
|
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; }
|
private ILog Log { get; set; }
|
||||||
|
|
||||||
public RequestDelegate Next { get; }
|
public RequestDelegate Next { get; }
|
||||||
|
|
||||||
public FilesLinkUtility FilesLinkUtility { get; }
|
|
||||||
|
|
||||||
public TenantExtra TenantExtra { get; }
|
public TenantExtra TenantExtra { get; }
|
||||||
public DocuSignHelper DocuSignHelper { get; }
|
public DocuSignHelper DocuSignHelper { get; }
|
||||||
public SecurityContext SecurityContext { get; }
|
public SecurityContext SecurityContext { get; }
|
||||||
@ -67,14 +67,12 @@ namespace ASC.Web.Files.HttpHandlers
|
|||||||
public DocuSignHandler(
|
public DocuSignHandler(
|
||||||
RequestDelegate next,
|
RequestDelegate next,
|
||||||
IOptionsMonitor<ILog> optionsMonitor,
|
IOptionsMonitor<ILog> optionsMonitor,
|
||||||
FilesLinkUtility filesLinkUtility,
|
|
||||||
TenantExtra tenantExtra,
|
TenantExtra tenantExtra,
|
||||||
DocuSignHelper docuSignHelper,
|
DocuSignHelper docuSignHelper,
|
||||||
SecurityContext securityContext,
|
SecurityContext securityContext,
|
||||||
NotifyClient notifyClient)
|
NotifyClient notifyClient)
|
||||||
{
|
{
|
||||||
Next = next;
|
Next = next;
|
||||||
FilesLinkUtility = filesLinkUtility;
|
|
||||||
TenantExtra = tenantExtra;
|
TenantExtra = tenantExtra;
|
||||||
DocuSignHelper = docuSignHelper;
|
DocuSignHelper = docuSignHelper;
|
||||||
SecurityContext = securityContext;
|
SecurityContext = securityContext;
|
||||||
@ -239,4 +237,18 @@ namespace ASC.Web.Files.HttpHandlers
|
|||||||
return result;
|
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.Files.Resources;
|
||||||
using ASC.Web.Studio.Utility;
|
using ASC.Web.Studio.Utility;
|
||||||
|
|
||||||
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
|
using Microsoft.Extensions.DependencyInjection.Extensions;
|
||||||
using Microsoft.Extensions.Options;
|
using Microsoft.Extensions.Options;
|
||||||
|
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
@ -377,4 +379,21 @@ namespace ASC.Web.Files.Services.DocumentService
|
|||||||
return new Exception(error, ex);
|
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;
|
||||||
using ASC.Core.Users;
|
using ASC.Core.Users;
|
||||||
using ASC.Files.Core;
|
using ASC.Files.Core;
|
||||||
|
using ASC.Files.Core.Data;
|
||||||
using ASC.Files.Core.Security;
|
using ASC.Files.Core.Security;
|
||||||
using ASC.Security.Cryptography;
|
using ASC.Security.Cryptography;
|
||||||
using ASC.Web.Core.Files;
|
using ASC.Web.Core.Files;
|
||||||
@ -43,6 +44,9 @@ using ASC.Web.Studio.Core;
|
|||||||
|
|
||||||
using JWT;
|
using JWT;
|
||||||
|
|
||||||
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
|
using Microsoft.Extensions.DependencyInjection.Extensions;
|
||||||
|
|
||||||
using File = ASC.Files.Core.File;
|
using File = ASC.Files.Core.File;
|
||||||
using FileShare = ASC.Files.Core.Security.FileShare;
|
using FileShare = ASC.Files.Core.Security.FileShare;
|
||||||
|
|
||||||
@ -56,11 +60,11 @@ namespace ASC.Web.Files.Services.DocumentService
|
|||||||
public AuthContext AuthContext { get; }
|
public AuthContext AuthContext { get; }
|
||||||
public FileSecurity FileSecurity { get; }
|
public FileSecurity FileSecurity { get; }
|
||||||
public SetupInfo SetupInfo { get; }
|
public SetupInfo SetupInfo { get; }
|
||||||
public EntryManager EntryManager { get; }
|
|
||||||
public FileUtility FileUtility { get; }
|
public FileUtility FileUtility { get; }
|
||||||
public MachinePseudoKeys MachinePseudoKeys { get; }
|
public MachinePseudoKeys MachinePseudoKeys { get; }
|
||||||
public Global Global { get; }
|
public Global Global { get; }
|
||||||
public DocumentServiceConnector DocumentServiceConnector { get; }
|
public DocumentServiceConnector DocumentServiceConnector { get; }
|
||||||
|
public LockerManager LockerManager { get; }
|
||||||
public IServiceProvider ServiceProvider { get; }
|
public IServiceProvider ServiceProvider { get; }
|
||||||
|
|
||||||
public DocumentServiceHelper(
|
public DocumentServiceHelper(
|
||||||
@ -70,11 +74,11 @@ namespace ASC.Web.Files.Services.DocumentService
|
|||||||
AuthContext authContext,
|
AuthContext authContext,
|
||||||
FileSecurity fileSecurity,
|
FileSecurity fileSecurity,
|
||||||
SetupInfo setupInfo,
|
SetupInfo setupInfo,
|
||||||
EntryManager entryManager,
|
|
||||||
FileUtility fileUtility,
|
FileUtility fileUtility,
|
||||||
MachinePseudoKeys machinePseudoKeys,
|
MachinePseudoKeys machinePseudoKeys,
|
||||||
Global global,
|
Global global,
|
||||||
DocumentServiceConnector documentServiceConnector,
|
DocumentServiceConnector documentServiceConnector,
|
||||||
|
LockerManager lockerManager,
|
||||||
IServiceProvider serviceProvider)
|
IServiceProvider serviceProvider)
|
||||||
{
|
{
|
||||||
DaoFactory = daoFactory;
|
DaoFactory = daoFactory;
|
||||||
@ -83,11 +87,11 @@ namespace ASC.Web.Files.Services.DocumentService
|
|||||||
AuthContext = authContext;
|
AuthContext = authContext;
|
||||||
FileSecurity = fileSecurity;
|
FileSecurity = fileSecurity;
|
||||||
SetupInfo = setupInfo;
|
SetupInfo = setupInfo;
|
||||||
EntryManager = entryManager;
|
|
||||||
FileUtility = fileUtility;
|
FileUtility = fileUtility;
|
||||||
MachinePseudoKeys = machinePseudoKeys;
|
MachinePseudoKeys = machinePseudoKeys;
|
||||||
Global = global;
|
Global = global;
|
||||||
DocumentServiceConnector = documentServiceConnector;
|
DocumentServiceConnector = documentServiceConnector;
|
||||||
|
LockerManager = lockerManager;
|
||||||
ServiceProvider = serviceProvider;
|
ServiceProvider = serviceProvider;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -185,7 +189,7 @@ namespace ASC.Web.Files.Services.DocumentService
|
|||||||
|
|
||||||
string strError = null;
|
string strError = null;
|
||||||
if ((editPossible || reviewPossible || fillFormsPossible || commentPossible)
|
if ((editPossible || reviewPossible || fillFormsPossible || commentPossible)
|
||||||
&& EntryManager.FileLockedForMe(file.ID))
|
&& LockerManager.FileLockedForMe(file.ID))
|
||||||
{
|
{
|
||||||
if (tryEdit)
|
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);
|
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;
|
||||||
using ASC.Core.Common;
|
using ASC.Core.Common;
|
||||||
using ASC.Files.Core;
|
using ASC.Files.Core;
|
||||||
|
using ASC.Files.Core.Data;
|
||||||
using ASC.Files.Core.Security;
|
using ASC.Files.Core.Security;
|
||||||
using ASC.Notify.Patterns;
|
using ASC.Notify.Patterns;
|
||||||
using ASC.Web.Core.Files;
|
using ASC.Web.Core.Files;
|
||||||
@ -38,6 +39,7 @@ using ASC.Web.Files.Classes;
|
|||||||
using ASC.Web.Files.Resources;
|
using ASC.Web.Files.Resources;
|
||||||
|
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
|
using Microsoft.Extensions.DependencyInjection.Extensions;
|
||||||
|
|
||||||
namespace ASC.Web.Files.Services.NotifyService
|
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 System;
|
||||||
|
|
||||||
using ASC.Core;
|
using ASC.Core;
|
||||||
|
using ASC.Core.Notify;
|
||||||
using ASC.Notify.Model;
|
using ASC.Notify.Model;
|
||||||
using ASC.Notify.Patterns;
|
using ASC.Notify.Patterns;
|
||||||
using ASC.Notify.Recipients;
|
using ASC.Notify.Recipients;
|
||||||
|
|
||||||
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
|
using Microsoft.Extensions.DependencyInjection.Extensions;
|
||||||
|
|
||||||
using NotifySourceBase = ASC.Core.Notify.NotifySource;
|
using NotifySourceBase = ASC.Core.Notify.NotifySource;
|
||||||
|
|
||||||
namespace ASC.Web.Files.Services.NotifyService
|
namespace ASC.Web.Files.Services.NotifyService
|
||||||
@ -54,4 +58,17 @@ namespace ASC.Web.Files.Services.NotifyService
|
|||||||
return new XmlPatternProvider2(FilesPatternResource.patterns);
|
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.Api.Routing;
|
||||||
using ASC.Web.Core.Files;
|
using ASC.Web.Core.Files;
|
||||||
using ASC.Web.Core.Users;
|
using ASC.Web.Core.Users;
|
||||||
|
using ASC.Web.Core.Utility;
|
||||||
using ASC.Web.Files.Classes;
|
using ASC.Web.Files.Classes;
|
||||||
using ASC.Web.Files.Core.Search;
|
using ASC.Web.Files.Core.Search;
|
||||||
using ASC.Web.Files.Helpers;
|
using ASC.Web.Files.Helpers;
|
||||||
@ -2207,28 +2208,28 @@ namespace ASC.Web.Files.Services.WCFService
|
|||||||
.AddPathProviderService()
|
.AddPathProviderService()
|
||||||
.AddDaoFactoryService()
|
.AddDaoFactoryService()
|
||||||
.AddFileMarkerService()
|
.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,
|
SocketManager socketManager,
|
||||||
EntryManager entryManager,
|
|
||||||
FilesMessageService filesMessageService,
|
|
||||||
DocumentServiceTrackerHelper documentServiceTrackerHelper,
|
DocumentServiceTrackerHelper documentServiceTrackerHelper,
|
||||||
DocuSignToken docuSignToken,
|
|
||||||
DocuSignHelper docuSignHelper,
|
|
||||||
FileShareLink fileShareLink,
|
|
||||||
FileConverter fileConverter,
|
|
||||||
DocumentServiceHelper documentServiceHelper,
|
|
||||||
ThirdpartyConfiguration thirdpartyConfiguration,
|
|
||||||
DocumentServiceConnector documentServiceConnector,
|
|
||||||
FileSharing fileSharing,
|
FileSharing fileSharing,
|
||||||
NotifyClient notifyClient,
|
|
||||||
FileOperationsManagerHelper fileOperationsManagerHelper,
|
FileOperationsManagerHelper fileOperationsManagerHelper,
|
||||||
UrlShortener urlShortener,
|
|
||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -37,6 +37,8 @@ using ASC.Files.Core;
|
|||||||
using ASC.Files.Core.EF;
|
using ASC.Files.Core.EF;
|
||||||
using ASC.Security.Cryptography;
|
using ASC.Security.Cryptography;
|
||||||
|
|
||||||
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
|
using Microsoft.Extensions.DependencyInjection.Extensions;
|
||||||
using Microsoft.Extensions.Options;
|
using Microsoft.Extensions.Options;
|
||||||
|
|
||||||
namespace ASC.Web.Files.ThirdPartyApp
|
namespace ASC.Web.Files.ThirdPartyApp
|
||||||
@ -161,4 +163,17 @@ namespace ASC.Web.Files.ThirdPartyApp
|
|||||||
return string.IsNullOrEmpty(token) ? null : Token.FromJson(InstanceCrypto.Decrypt(token));
|
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;
|
||||||
using ASC.Core.Users;
|
using ASC.Core.Users;
|
||||||
using ASC.Files.Core;
|
using ASC.Files.Core;
|
||||||
|
using ASC.Files.Core.Data;
|
||||||
using ASC.Files.Core.Security;
|
using ASC.Files.Core.Security;
|
||||||
using ASC.Web.Core.Files;
|
using ASC.Web.Core.Files;
|
||||||
using ASC.Web.Files.Api;
|
using ASC.Web.Files.Api;
|
||||||
@ -47,9 +48,9 @@ using ASC.Web.Files.Helpers;
|
|||||||
using ASC.Web.Files.Resources;
|
using ASC.Web.Files.Resources;
|
||||||
using ASC.Web.Files.Services.DocumentService;
|
using ASC.Web.Files.Services.DocumentService;
|
||||||
using ASC.Web.Files.ThirdPartyApp;
|
using ASC.Web.Files.ThirdPartyApp;
|
||||||
using ASC.Web.Studio.Core;
|
|
||||||
|
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
|
using Microsoft.Extensions.DependencyInjection.Extensions;
|
||||||
using Microsoft.Extensions.Options;
|
using Microsoft.Extensions.Options;
|
||||||
|
|
||||||
using Newtonsoft.Json.Linq;
|
using Newtonsoft.Json.Linq;
|
||||||
@ -59,6 +60,38 @@ using FileShare = ASC.Files.Core.Security.FileShare;
|
|||||||
|
|
||||||
namespace ASC.Web.Files.Utils
|
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
|
public class EntryManager
|
||||||
{
|
{
|
||||||
private const string UPDATE_LIST = "filesUpdateList";
|
private const string UPDATE_LIST = "filesUpdateList";
|
||||||
@ -75,13 +108,13 @@ namespace ASC.Web.Files.Utils
|
|||||||
public Global Global { get; }
|
public Global Global { get; }
|
||||||
public GlobalStore GlobalStore { get; }
|
public GlobalStore GlobalStore { get; }
|
||||||
public CoreBaseSettings CoreBaseSettings { get; }
|
public CoreBaseSettings CoreBaseSettings { get; }
|
||||||
public SetupInfo SetupInfo { get; }
|
|
||||||
public FilesSettingsHelper FilesSettingsHelper { get; }
|
public FilesSettingsHelper FilesSettingsHelper { get; }
|
||||||
public UserManager UserManager { get; }
|
public UserManager UserManager { get; }
|
||||||
public FileShareLink FileShareLink { get; }
|
public FileShareLink FileShareLink { get; }
|
||||||
public DocumentServiceHelper DocumentServiceHelper { get; }
|
public DocumentServiceHelper DocumentServiceHelper { get; }
|
||||||
public ThirdpartyConfiguration ThirdpartyConfiguration { get; }
|
public ThirdpartyConfiguration ThirdpartyConfiguration { get; }
|
||||||
public DocumentServiceConnector DocumentServiceConnector { get; }
|
public DocumentServiceConnector DocumentServiceConnector { get; }
|
||||||
|
public LockerManager LockerManager { get; }
|
||||||
public IServiceProvider ServiceProvider { get; }
|
public IServiceProvider ServiceProvider { get; }
|
||||||
public ILog Logger { get; }
|
public ILog Logger { get; }
|
||||||
|
|
||||||
@ -97,7 +130,6 @@ namespace ASC.Web.Files.Utils
|
|||||||
Global global,
|
Global global,
|
||||||
GlobalStore globalStore,
|
GlobalStore globalStore,
|
||||||
CoreBaseSettings coreBaseSettings,
|
CoreBaseSettings coreBaseSettings,
|
||||||
SetupInfo setupInfo,
|
|
||||||
FilesSettingsHelper filesSettingsHelper,
|
FilesSettingsHelper filesSettingsHelper,
|
||||||
UserManager userManager,
|
UserManager userManager,
|
||||||
IOptionsMonitor<ILog> optionsMonitor,
|
IOptionsMonitor<ILog> optionsMonitor,
|
||||||
@ -105,6 +137,7 @@ namespace ASC.Web.Files.Utils
|
|||||||
DocumentServiceHelper documentServiceHelper,
|
DocumentServiceHelper documentServiceHelper,
|
||||||
ThirdpartyConfiguration thirdpartyConfiguration,
|
ThirdpartyConfiguration thirdpartyConfiguration,
|
||||||
DocumentServiceConnector documentServiceConnector,
|
DocumentServiceConnector documentServiceConnector,
|
||||||
|
LockerManager lockerManager,
|
||||||
IServiceProvider serviceProvider)
|
IServiceProvider serviceProvider)
|
||||||
{
|
{
|
||||||
DaoFactory = daoFactory;
|
DaoFactory = daoFactory;
|
||||||
@ -118,13 +151,13 @@ namespace ASC.Web.Files.Utils
|
|||||||
Global = global;
|
Global = global;
|
||||||
GlobalStore = globalStore;
|
GlobalStore = globalStore;
|
||||||
CoreBaseSettings = coreBaseSettings;
|
CoreBaseSettings = coreBaseSettings;
|
||||||
SetupInfo = setupInfo;
|
|
||||||
FilesSettingsHelper = filesSettingsHelper;
|
FilesSettingsHelper = filesSettingsHelper;
|
||||||
UserManager = userManager;
|
UserManager = userManager;
|
||||||
FileShareLink = fileShareLink;
|
FileShareLink = fileShareLink;
|
||||||
DocumentServiceHelper = documentServiceHelper;
|
DocumentServiceHelper = documentServiceHelper;
|
||||||
ThirdpartyConfiguration = thirdpartyConfiguration;
|
ThirdpartyConfiguration = thirdpartyConfiguration;
|
||||||
DocumentServiceConnector = documentServiceConnector;
|
DocumentServiceConnector = documentServiceConnector;
|
||||||
|
LockerManager = lockerManager;
|
||||||
ServiceProvider = serviceProvider;
|
ServiceProvider = serviceProvider;
|
||||||
Logger = optionsMonitor.CurrentValue;
|
Logger = optionsMonitor.CurrentValue;
|
||||||
cache = AscCache.Memory;
|
cache = AscCache.Memory;
|
||||||
@ -590,22 +623,12 @@ namespace ASC.Web.Files.Utils
|
|||||||
|
|
||||||
public bool FileLockedForMe(object fileId, Guid userId = default)
|
public bool FileLockedForMe(object fileId, Guid userId = default)
|
||||||
{
|
{
|
||||||
var app = ThirdPartySelector.GetAppByFileId(fileId.ToString());
|
return LockerManager.FileLockedForMe(fileId, userId);
|
||||||
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)
|
public Guid FileLockedBy(object fileId, ITagDao tagDao)
|
||||||
{
|
{
|
||||||
var tagLock = tagDao.GetTags(fileId, FileEntryType.File, TagType.Locked).FirstOrDefault();
|
return LockerManager.FileLockedBy(fileId, tagDao);
|
||||||
return tagLock != null ? tagLock.Owner : Guid.Empty;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1000,4 +1023,43 @@ namespace ASC.Web.Files.Utils
|
|||||||
folderDao.ReassignFolders(folderIds.ToArray(), toUserId);
|
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.Common.Security.Authentication;
|
||||||
using ASC.Core;
|
using ASC.Core;
|
||||||
using ASC.Files.Core;
|
using ASC.Files.Core;
|
||||||
|
using ASC.Files.Core.Data;
|
||||||
using ASC.Files.Core.Security;
|
using ASC.Files.Core.Security;
|
||||||
using ASC.MessagingSystem;
|
using ASC.MessagingSystem;
|
||||||
using ASC.Web.Core.Files;
|
using ASC.Web.Core.Files;
|
||||||
@ -53,6 +54,7 @@ using ASC.Web.Studio.Core;
|
|||||||
|
|
||||||
using Microsoft.AspNetCore.Http;
|
using Microsoft.AspNetCore.Http;
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
|
using Microsoft.Extensions.DependencyInjection.Extensions;
|
||||||
using Microsoft.Extensions.Options;
|
using Microsoft.Extensions.Options;
|
||||||
|
|
||||||
using File = ASC.Files.Core.File;
|
using File = ASC.Files.Core.File;
|
||||||
@ -724,4 +726,29 @@ namespace ASC.Web.Files.Utils
|
|||||||
public string Password { get; set; }
|
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.Core.Files;
|
||||||
using ASC.Web.Files.Classes;
|
using ASC.Web.Files.Classes;
|
||||||
|
|
||||||
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
|
using Microsoft.Extensions.DependencyInjection.Extensions;
|
||||||
|
|
||||||
using File = ASC.Files.Core.File;
|
using File = ASC.Files.Core.File;
|
||||||
using FileShare = ASC.Files.Core.Security.FileShare;
|
using FileShare = ASC.Files.Core.Security.FileShare;
|
||||||
|
|
||||||
@ -110,4 +113,17 @@ namespace ASC.Web.Files.Utils
|
|||||||
return FileShare.Restrict;
|
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 ASC.Core.Common.EF.Context;
|
||||||
|
|
||||||
using Microsoft.Extensions.Configuration;
|
using Microsoft.Extensions.Configuration;
|
||||||
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
|
using Microsoft.Extensions.DependencyInjection.Extensions;
|
||||||
|
|
||||||
namespace ASC.Web.Core.Files
|
namespace ASC.Web.Core.Files
|
||||||
{
|
{
|
||||||
public class FileUtility
|
public class FileUtility
|
||||||
{
|
{
|
||||||
public DbContextManager<FilesDbContext> FilesDbContext { get; set; }
|
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;
|
Configuration = configuration;
|
||||||
FilesLinkUtility = filesLinkUtility;
|
FilesLinkUtility = filesLinkUtility;
|
||||||
@ -374,4 +379,15 @@ namespace ASC.Web.Core.Files
|
|||||||
|
|
||||||
#endregion
|
#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