Merge branch 'master' into feature/ASC.Data.Storage.Encryption

This commit is contained in:
SuhorukovAnton 2020-09-09 12:40:01 +03:00
commit ae61f59d55
18 changed files with 332 additions and 253 deletions

View File

@ -283,7 +283,7 @@ namespace ASC.Notify.Engine
{ {
if (request.Recipient is IDirectRecipient) if (request.Recipient is IDirectRecipient)
{ {
var subscriptionSource = request.NotifySource.GetSubscriptionProvider(); var subscriptionSource = request.GetSubscriptionProvider(serviceScope);
if (!request.IsNeedCheckSubscriptions || !subscriptionSource.IsUnsubscribe(request.Recipient as IDirectRecipient, request.NotifyAction, request.ObjectID)) if (!request.IsNeedCheckSubscriptions || !subscriptionSource.IsUnsubscribe(request.Recipient as IDirectRecipient, request.NotifyAction, request.ObjectID))
{ {
var directresponses = new List<SendResponse>(1); var directresponses = new List<SendResponse>(1);
@ -309,7 +309,7 @@ namespace ASC.Notify.Engine
} }
else else
{ {
var recipientProvider = request.NotifySource.GetRecipientsProvider(); var recipientProvider = request.GetRecipientsProvider(serviceScope);
try try
{ {
@ -358,9 +358,9 @@ namespace ASC.Notify.Engine
try try
{ {
PrepareRequestFillSenders(request); PrepareRequestFillSenders(request, serviceScope);
PrepareRequestFillPatterns(request); PrepareRequestFillPatterns(request, serviceScope);
PrepareRequestFillTags(request); PrepareRequestFillTags(request, serviceScope);
} }
catch (Exception ex) catch (Exception ex)
{ {
@ -421,7 +421,7 @@ namespace ASC.Notify.Engine
{ {
if (request == null) throw new ArgumentNullException("request"); if (request == null) throw new ArgumentNullException("request");
var recipientProvider = request.NotifySource.GetRecipientsProvider(); var recipientProvider = request.GetRecipientsProvider(serviceScope);
var recipient = request.Recipient as IDirectRecipient; var recipient = request.Recipient as IDirectRecipient;
var addresses = recipient.Addresses; var addresses = recipient.Addresses;
@ -450,7 +450,7 @@ namespace ASC.Notify.Engine
noticeMessage.Pattern = pattern; noticeMessage.Pattern = pattern;
noticeMessage.ContentType = pattern.ContentType; noticeMessage.ContentType = pattern.ContentType;
noticeMessage.AddArgument(request.Arguments.ToArray()); noticeMessage.AddArgument(request.Arguments.ToArray());
var patternProvider = request.NotifySource.GetPatternProvider(); var patternProvider = request.GetPatternProvider(serviceScope);
var formatter = patternProvider.GetFormatter(pattern); var formatter = patternProvider.GetFormatter(pattern);
try try
@ -500,11 +500,11 @@ namespace ASC.Notify.Engine
} }
} }
private void PrepareRequestFillSenders(NotifyRequest request) private void PrepareRequestFillSenders(NotifyRequest request, IServiceScope serviceScope)
{ {
if (request.SenderNames == null) if (request.SenderNames == null)
{ {
var subscriptionProvider = request.NotifySource.GetSubscriptionProvider(); var subscriptionProvider = request.GetSubscriptionProvider(serviceScope);
var senderNames = new List<string>(); var senderNames = new List<string>();
senderNames.AddRange(subscriptionProvider.GetSubscriptionMethod(request.NotifyAction, request.Recipient) ?? new string[0]); senderNames.AddRange(subscriptionProvider.GetSubscriptionMethod(request.NotifyAction, request.Recipient) ?? new string[0]);
@ -514,14 +514,14 @@ namespace ASC.Notify.Engine
} }
} }
private void PrepareRequestFillPatterns(NotifyRequest request) private void PrepareRequestFillPatterns(NotifyRequest request, IServiceScope serviceScope)
{ {
if (request.Patterns == null) if (request.Patterns == null)
{ {
request.Patterns = new IPattern[request.SenderNames.Length]; request.Patterns = new IPattern[request.SenderNames.Length];
if (request.Patterns.Length == 0) return; if (request.Patterns.Length == 0) return;
var apProvider = request.NotifySource.GetPatternProvider(); var apProvider = request.GetPatternProvider(serviceScope);
for (var i = 0; i < request.SenderNames.Length; i++) for (var i = 0; i < request.SenderNames.Length; i++)
{ {
var senderName = request.SenderNames[i]; var senderName = request.SenderNames[i];
@ -540,9 +540,9 @@ namespace ASC.Notify.Engine
} }
} }
private void PrepareRequestFillTags(NotifyRequest request) private void PrepareRequestFillTags(NotifyRequest request, IServiceScope serviceScope)
{ {
var patternProvider = request.NotifySource.GetPatternProvider(); var patternProvider = request.GetPatternProvider(serviceScope);
foreach (var pattern in request.Patterns) foreach (var pattern in request.Patterns)
{ {
IPatternFormatter formatter; IPatternFormatter formatter;

View File

@ -41,7 +41,7 @@ namespace ASC.Notify.Engine
{ {
public class NotifyRequest public class NotifyRequest
{ {
public INotifySource NotifySource { get; internal set; } private INotifySource NotifySource { get; set; }
public INotifyAction NotifyAction { get; internal set; } public INotifyAction NotifyAction { get; internal set; }
@ -143,5 +143,25 @@ namespace ASC.Notify.Engine
{ {
return new NoticeMessage(recipient, NotifyAction, ObjectID); return new NoticeMessage(recipient, NotifyAction, ObjectID);
} }
public IActionProvider GetActionProvider(IServiceScope scope)
{
return ((INotifySource)scope.ServiceProvider.GetService(NotifySource.GetType())).GetActionProvider();
}
public IPatternProvider GetPatternProvider(IServiceScope scope)
{
return ((INotifySource)scope.ServiceProvider.GetService(NotifySource.GetType())).GetPatternProvider();
}
public IRecipientProvider GetRecipientsProvider(IServiceScope scope)
{
return ((INotifySource)scope.ServiceProvider.GetService(NotifySource.GetType())).GetRecipientsProvider();
}
public ISubscriptionProvider GetSubscriptionProvider(IServiceScope scope)
{
return ((INotifySource)scope.ServiceProvider.GetService(NotifySource.GetType())).GetSubscriptionProvider();
}
} }
} }

View File

@ -100,7 +100,9 @@
}, },
"controlpanel": { "controlpanel": {
"url": "" "url": ""
} },
"support-feedback": "https://helpdesk.onlyoffice.com",
"teamlab-site": "http://www.onlyoffice.com"
}, },
"ConnectionStrings": { "ConnectionStrings": {
"default": { "default": {

View File

@ -70,6 +70,29 @@
</Compile> </Compile>
</ItemGroup> </ItemGroup>
<ItemGroup>
<Compile Update="Services\NotifyService\FilesPatternResource.Designer.cs">
<DesignTime>True</DesignTime>
<AutoGen>True</AutoGen>
<DependentUpon>FilesPatternResource.resx</DependentUpon>
</Compile>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Update="Services\NotifyService\FilesPatternResource.resx">
<Generator>PublicResXFileCodeGenerator</Generator>
<LastGenOutput>FilesPatternResource.Designer.cs</LastGenOutput>
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<None Remove="Services\NotifyService\patterns.xml" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Services\NotifyService\patterns.xml" />
</ItemGroup>
<ItemGroup> <ItemGroup>
<EmbeddedResource Update="Resources\FilesCommonResource.de.resx"> <EmbeddedResource Update="Resources\FilesCommonResource.de.resx">
<DependentUpon>FilesCommonResource.resx</DependentUpon> <DependentUpon>FilesCommonResource.resx</DependentUpon>

View File

@ -36,6 +36,7 @@ using ASC.Web.Core;
using ASC.Web.Core.PublicResources; using ASC.Web.Core.PublicResources;
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.Studio.Core.Notify;
namespace ASC.Web.Files.Configuration namespace ASC.Web.Files.Configuration
{ {
@ -60,7 +61,8 @@ namespace ASC.Web.Files.Configuration
// FilesSpaceUsageStatManager filesSpaceUsageStatManager, // FilesSpaceUsageStatManager filesSpaceUsageStatManager,
CoreBaseSettings coreBaseSettings, CoreBaseSettings coreBaseSettings,
AuthContext authContext, AuthContext authContext,
UserManager userManager UserManager userManager,
IServiceProvider serviceProvider
// SubscriptionManager subscriptionManager // SubscriptionManager subscriptionManager
) )
{ {
@ -68,6 +70,7 @@ namespace ASC.Web.Files.Configuration
CoreBaseSettings = coreBaseSettings; CoreBaseSettings = coreBaseSettings;
AuthContext = authContext; AuthContext = authContext;
UserManager = userManager; UserManager = userManager;
ServiceProvider = serviceProvider;
//SubscriptionManager = subscriptionManager; //SubscriptionManager = subscriptionManager;
} }
@ -101,6 +104,10 @@ namespace ASC.Web.Files.Configuration
CanNotBeDisabled = true, CanNotBeDisabled = true,
}; };
if (ServiceProvider != null)
{
NotifyConfiguration.Configure(ServiceProvider);
}
//SearchHandlerManager.Registry(new SearchHandler()); //SearchHandlerManager.Registry(new SearchHandler());
} }
@ -175,6 +182,7 @@ namespace ASC.Web.Files.Configuration
{ {
if (services.TryAddScoped<ProductEntryPoint>()) if (services.TryAddScoped<ProductEntryPoint>())
{ {
services.TryAddScoped<IWebItem, ProductEntryPoint>();
return services return services
.AddFilesSpaceUsageStatManagerService() .AddFilesSpaceUsageStatManagerService()
.AddCoreBaseSettingsService() .AddCoreBaseSettingsService()

View File

@ -355,8 +355,13 @@ namespace ASC.Files.Core.Data
private FileShareRecord ToFileShareRecord(SecurityTreeRecord r) private FileShareRecord ToFileShareRecord(SecurityTreeRecord r)
{ {
var result = ToFileShareRecord(r.DbFilesSecurity); var result = ToFileShareRecord(r.DbFilesSecurity);
result.EntryId = r.DbFolderTree?.FolderId; if (r.DbFolderTree != null)
{
result.EntryId = r.DbFolderTree.FolderId;
}
result.Level = r.DbFolderTree?.Level ?? -1; result.Level = r.DbFolderTree?.Level ?? -1;
return result; return result;
} }
} }

View File

@ -193,14 +193,16 @@ namespace ASC.Files.Core.Data
Query(FilesDbContext.Tag) Query(FilesDbContext.Tag)
.Join(FilesDbContext.TagLink, r => r.Id, l => l.TagId, (tag, link) => new TagLinkData { Tag = tag, Link = link }) .Join(FilesDbContext.TagLink, r => r.Id, l => l.TagId, (tag, link) => new TagLinkData { Tag = tag, Link = link })
.Where(r => r.Link.TenantId == r.Tag.TenantId) .Where(r => r.Link.TenantId == r.Tag.TenantId)
.Where(r => r.Tag.Flag == TagType.New && r.Link.CreateOn <= TenantUtil.DateTimeNow().AddMonths(-1)); .Where(r => r.Tag.Flag == TagType.New && r.Link.CreateOn <= TenantUtil.DateTimeNow().AddMonths(-1))
.ToList();
foreach (var row in mustBeDeleted) foreach (var row in mustBeDeleted)
{ {
var linksToRemove = Query(FilesDbContext.TagLink) var linksToRemove = Query(FilesDbContext.TagLink)
.Where(r => r.TagId == row.Link.TagId) .Where(r => r.TagId == row.Link.TagId)
.Where(r => r.EntryId == row.Link.EntryId) .Where(r => r.EntryId == row.Link.EntryId)
.Where(r => r.EntryType == row.Link.EntryType); .Where(r => r.EntryType == row.Link.EntryType)
.ToList();
FilesDbContext.TagLink.RemoveRange(linksToRemove); FilesDbContext.TagLink.RemoveRange(linksToRemove);
} }

View File

@ -417,7 +417,7 @@ namespace ASC.Web.Files.Classes
id = my ? folderDao.GetFolderIDUser(true) : folderDao.GetFolderIDCommon(true); id = my ? folderDao.GetFolderIDUser(true) : folderDao.GetFolderIDCommon(true);
//Copy start document //Copy start document
if (AdditionalWhiteLabelSettings.Instance(SettingsManager).StartDocsEnabled) if (SettingsManager.LoadForDefaultTenant<AdditionalWhiteLabelSettings>().StartDocsEnabled)
{ {
try try
{ {

View File

@ -594,12 +594,13 @@ namespace ASC.Web.Files.Services.DocumentService
get get
{ {
if (CoreBaseSettings.Standalone) return null; if (CoreBaseSettings.Standalone) return null;
if (!AdditionalWhiteLabelSettings.Instance(SettingsManager).FeedbackAndSupportEnabled) return null; var settings = SettingsManager.LoadForDefaultTenant<AdditionalWhiteLabelSettings>();
if (!settings.FeedbackAndSupportEnabled) return null;
return new FeedbackConfig return new FeedbackConfig
{ {
Url = BaseCommonLinkUtility.GetRegionalUrl( Url = BaseCommonLinkUtility.GetRegionalUrl(
AdditionalWhiteLabelSettings.Instance(SettingsManager).FeedbackAndSupportUrl, settings.FeedbackAndSupportUrl,
CultureInfo.CurrentCulture.TwoLetterISOLanguageName), CultureInfo.CurrentCulture.TwoLetterISOLanguageName),
}; };
} }

View File

@ -19,7 +19,7 @@ namespace ASC.Web.Files.Services.NotifyService {
// class via a tool like ResGen or Visual Studio. // class via a tool like ResGen or Visual Studio.
// To add or remove a member, edit your .ResX file then rerun ResGen // To add or remove a member, edit your .ResX file then rerun ResGen
// with the /str option, or rebuild your VS project. // with the /str option, or rebuild your VS project.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
public class FilesPatternResource { public class FilesPatternResource {
@ -39,7 +39,7 @@ namespace ASC.Web.Files.Services.NotifyService {
public static global::System.Resources.ResourceManager ResourceManager { public static global::System.Resources.ResourceManager ResourceManager {
get { get {
if (object.ReferenceEquals(resourceMan, null)) { if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ASC.Web.Files.Services.NotifyService.FilesPatternResource", typeof(FilesPatternResource).Assembly); global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ASC.Files.Core.Services.NotifyService.FilesPatternResource", typeof(FilesPatternResource).Assembly);
resourceMan = temp; resourceMan = temp;
} }
return resourceMan; return resourceMan;
@ -144,13 +144,13 @@ namespace ASC.Web.Files.Services.NotifyService {
/// <summary> /// <summary>
/// Looks up a localized string similar to &lt;patterns&gt; /// Looks up a localized string similar to &lt;patterns&gt;
/// &lt;formatter type=&quot;ASC.Notify.Patterns.NVelocityPatternFormatter, ASC.Common&quot; /&gt; /// &lt;formatter type=&quot;ASC.Notify.Patterns.NVelocityPatternFormatter, ASC.Core.Common&quot; /&gt;
/// ///
/// &lt;pattern id=&quot;DocuSignComplete&quot; sender=&quot;email.sender&quot;&gt; /// &lt;pattern id=&quot;DocuSignComplete&quot; sender=&quot;email.sender&quot;&gt;
/// &lt;subject resource=&quot;|subject_DocuSignComplete|ASC.Web.Files.Services.NotifyService.FilesPatternResource,ASC.Web.Files&quot; /&gt; /// &lt;subject resource=&quot;|subject_DocuSignComplete|ASC.Web.Files.Services.NotifyService.FilesPatternResource,ASC.Files.Core&quot; /&gt;
/// &lt;body styler=&quot;ASC.Notify.Textile.TextileStyler,ASC.Notify.Textile&quot; resource=&quot;|pattern_DocuSignComplete|ASC.Web.Files.Services.NotifyService.FilesPatternResource,ASC.Web.Files&quot; /&gt; /// &lt;body styler=&quot;ASC.Notify.Textile.TextileStyler,ASC.Notify.Textile&quot; resource=&quot;|pattern_DocuSignComplete|ASC.Web.Files.Services.NotifyService.FilesPatternResource,ASC.Files.Core&quot; /&gt;
/// &lt;/pattern&gt; /// &lt;/pattern&gt;
/// &lt;pattern id=&quot;DocuSignComplete&quot; se [rest of string was truncated]&quot;;. /// &lt;pattern id=&quot;DocuSignComplete&quot; send [rest of string was truncated]&quot;;.
/// </summary> /// </summary>
public static string patterns { public static string patterns {
get { get {

View File

@ -1,30 +1,30 @@
<patterns> <patterns>
<formatter type="ASC.Notify.Patterns.NVelocityPatternFormatter, ASC.Common" /> <formatter type="ASC.Notify.Patterns.NVelocityPatternFormatter, ASC.Core.Common" />
<pattern id="DocuSignComplete" sender="email.sender"> <pattern id="DocuSignComplete" sender="email.sender">
<subject resource="|subject_DocuSignComplete|ASC.Web.Files.Services.NotifyService.FilesPatternResource,ASC.Web.Files" /> <subject resource="|subject_DocuSignComplete|ASC.Web.Files.Services.NotifyService.FilesPatternResource,ASC.Files.Core" />
<body styler="ASC.Notify.Textile.TextileStyler,ASC.Notify.Textile" resource="|pattern_DocuSignComplete|ASC.Web.Files.Services.NotifyService.FilesPatternResource,ASC.Web.Files" /> <body styler="ASC.Notify.Textile.TextileStyler,ASC.Notify.Textile" resource="|pattern_DocuSignComplete|ASC.Web.Files.Services.NotifyService.FilesPatternResource,ASC.Files.Core" />
</pattern> </pattern>
<pattern id="DocuSignComplete" sender="messanger.sender"> <pattern id="DocuSignComplete" sender="messanger.sender">
<subject resource="|subject_DocuSignComplete|ASC.Web.Files.Services.NotifyService.FilesPatternResource,ASC.Web.Files" /> <subject resource="|subject_DocuSignComplete|ASC.Web.Files.Services.NotifyService.FilesPatternResource,ASC.Files.Core" />
<body styler="ASC.Notify.Textile.JabberStyler, ASC.Notify.Textile">$DocumentURL</body> <body styler="ASC.Notify.Textile.JabberStyler, ASC.Notify.Textile">$DocumentURL</body>
</pattern> </pattern>
<pattern id="DocuSignStatus" sender="email.sender"> <pattern id="DocuSignStatus" sender="email.sender">
<subject resource="|subject_DocuSignStatus|ASC.Web.Files.Services.NotifyService.FilesPatternResource,ASC.Web.Files" /> <subject resource="|subject_DocuSignStatus|ASC.Web.Files.Services.NotifyService.FilesPatternResource,ASC.Files.Core" />
<body styler="ASC.Notify.Textile.TextileStyler,ASC.Notify.Textile" resource="|pattern_DocuSignStatus|ASC.Web.Files.Services.NotifyService.FilesPatternResource,ASC.Web.Files" /> <body styler="ASC.Notify.Textile.TextileStyler,ASC.Notify.Textile" resource="|pattern_DocuSignStatus|ASC.Web.Files.Services.NotifyService.FilesPatternResource,ASC.Files.Core" />
</pattern> </pattern>
<pattern id="DocuSignStatus" sender="messanger.sender"> <pattern id="DocuSignStatus" sender="messanger.sender">
<subject resource="|subject_DocuSignStatus|ASC.Web.Files.Services.NotifyService.FilesPatternResource,ASC.Web.Files" /> <subject resource="|subject_DocuSignStatus|ASC.Web.Files.Services.NotifyService.FilesPatternResource,ASC.Files.Core" />
<body styler="ASC.Notify.Textile.JabberStyler, ASC.Notify.Textile">$Message: $DocumentTitle</body> <body styler="ASC.Notify.Textile.JabberStyler, ASC.Notify.Textile">$Message: $DocumentTitle</body>
</pattern> </pattern>
<pattern id="MailMergeEnd" sender="email.sender"> <pattern id="MailMergeEnd" sender="email.sender">
<subject resource="|subject_MailMergeEnd|ASC.Web.Files.Services.NotifyService.FilesPatternResource,ASC.Web.Files" /> <subject resource="|subject_MailMergeEnd|ASC.Web.Files.Services.NotifyService.FilesPatternResource,ASC.Files.Core" />
<body styler="ASC.Notify.Textile.TextileStyler,ASC.Notify.Textile" resource="|pattern_MailMergeEnd|ASC.Web.Files.Services.NotifyService.FilesPatternResource,ASC.Web.Files" /> <body styler="ASC.Notify.Textile.TextileStyler,ASC.Notify.Textile" resource="|pattern_MailMergeEnd|ASC.Web.Files.Services.NotifyService.FilesPatternResource,ASC.Files.Core" />
</pattern> </pattern>
<pattern id="MailMergeEnd" sender="messanger.sender"> <pattern id="MailMergeEnd" sender="messanger.sender">
<subject resource="|subject_MailMergeEnd|ASC.Web.Files.Services.NotifyService.FilesPatternResource,ASC.Web.Files" /> <subject resource="|subject_MailMergeEnd|ASC.Web.Files.Services.NotifyService.FilesPatternResource,ASC.Files.Core" />
<body styler="ASC.Notify.Textile.JabberStyler, ASC.Notify.Textile">$__AuthorName <body styler="ASC.Notify.Textile.JabberStyler, ASC.Notify.Textile">$__AuthorName
$Message $Message
@ -32,11 +32,11 @@ $Message
</pattern> </pattern>
<pattern id="ShareDocument" sender="email.sender"> <pattern id="ShareDocument" sender="email.sender">
<subject resource="|subject_ShareDocument|ASC.Web.Files.Services.NotifyService.FilesPatternResource,ASC.Web.Files" /> <subject resource="|subject_ShareDocument|ASC.Web.Files.Services.NotifyService.FilesPatternResource,ASC.Files.Core" />
<body styler="ASC.Notify.Textile.TextileStyler,ASC.Notify.Textile" resource="|pattern_ShareDocument|ASC.Web.Files.Services.NotifyService.FilesPatternResource,ASC.Web.Files" /> <body styler="ASC.Notify.Textile.TextileStyler,ASC.Notify.Textile" resource="|pattern_ShareDocument|ASC.Web.Files.Services.NotifyService.FilesPatternResource,ASC.Files.Core" />
</pattern> </pattern>
<pattern id="ShareDocument" sender="messanger.sender"> <pattern id="ShareDocument" sender="messanger.sender">
<subject resource="|subject_ShareDocument|ASC.Web.Files.Services.NotifyService.FilesPatternResource,ASC.Web.Files" /> <subject resource="|subject_ShareDocument|ASC.Web.Files.Services.NotifyService.FilesPatternResource,ASC.Files.Core" />
<body styler="ASC.Notify.Textile.JabberStyler, ASC.Notify.Textile">$__AuthorName <body styler="ASC.Notify.Textile.JabberStyler, ASC.Notify.Textile">$__AuthorName
$AccessRights $AccessRights
@ -48,11 +48,11 @@ $DocumentURL
</pattern> </pattern>
<pattern id="ShareFolder" sender="email.sender"> <pattern id="ShareFolder" sender="email.sender">
<subject resource="|subject_ShareFolder|ASC.Web.Files.Services.NotifyService.FilesPatternResource,ASC.Web.Files" /> <subject resource="|subject_ShareFolder|ASC.Web.Files.Services.NotifyService.FilesPatternResource,ASC.Files.Core" />
<body styler="ASC.Notify.Textile.TextileStyler,ASC.Notify.Textile" resource="|pattern_ShareFolder|ASC.Web.Files.Services.NotifyService.FilesPatternResource,ASC.Web.Files" /> <body styler="ASC.Notify.Textile.TextileStyler,ASC.Notify.Textile" resource="|pattern_ShareFolder|ASC.Web.Files.Services.NotifyService.FilesPatternResource,ASC.Files.Core" />
</pattern> </pattern>
<pattern id="ShareFolder" sender="messanger.sender"> <pattern id="ShareFolder" sender="messanger.sender">
<subject resource="|subject_ShareFolder|ASC.Web.Files.Services.NotifyService.FilesPatternResource,ASC.Web.Files" /> <subject resource="|subject_ShareFolder|ASC.Web.Files.Services.NotifyService.FilesPatternResource,ASC.Files.Core" />
<body styler="ASC.Notify.Textile.JabberStyler, ASC.Notify.Textile">$__AuthorName <body styler="ASC.Notify.Textile.JabberStyler, ASC.Notify.Textile">$__AuthorName
$AccessRights $AccessRights
@ -64,11 +64,11 @@ $__VirtualRootPath/products/files/#$FolderID
</pattern> </pattern>
<pattern id="EditorMentions" sender="email.sender"> <pattern id="EditorMentions" sender="email.sender">
<subject resource="|subject_EditorMentions|ASC.Web.Files.Services.NotifyService.FilesPatternResource,ASC.Web.Files" /> <subject resource="|subject_EditorMentions|ASC.Web.Files.Services.NotifyService.FilesPatternResource,ASC.Files.Core" />
<body styler="ASC.Notify.Textile.TextileStyler,ASC.Notify.Textile" resource="|pattern_EditorMentions|ASC.Web.Files.Services.NotifyService.FilesPatternResource,ASC.Web.Files" /> <body styler="ASC.Notify.Textile.TextileStyler,ASC.Notify.Textile" resource="|pattern_EditorMentions|ASC.Web.Files.Services.NotifyService.FilesPatternResource,ASC.Files.Core" />
</pattern> </pattern>
<pattern id="EditorMentions" sender="messanger.sender"> <pattern id="EditorMentions" sender="messanger.sender">
<subject resource="|subject_EditorMentions|ASC.Web.Files.Services.NotifyService.FilesPatternResource,ASC.Web.Files" /> <subject resource="|subject_EditorMentions|ASC.Web.Files.Services.NotifyService.FilesPatternResource,ASC.Files.Core" />
<body styler="ASC.Notify.Textile.JabberStyler, ASC.Notify.Textile">$__AuthorName <body styler="ASC.Notify.Textile.JabberStyler, ASC.Notify.Textile">$__AuthorName
$DocumentTitle $DocumentTitle

View File

@ -7,6 +7,7 @@ using ASC.Api.Documents;
using ASC.Common; using ASC.Common;
using ASC.Web.Files; using ASC.Web.Files;
using ASC.Web.Files.HttpHandlers; using ASC.Web.Files.HttpHandlers;
using ASC.Web.Studio.Core.Notify;
using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Hosting;
@ -42,7 +43,8 @@ namespace ASC.Files
.AddFileHandlerService() .AddFileHandlerService()
.AddChunkedUploaderHandlerService() .AddChunkedUploaderHandlerService()
.AddThirdPartyAppHandlerService() .AddThirdPartyAppHandlerService()
.AddDocuSignHandlerService(); .AddDocuSignHandlerService()
.AddNotifyConfiguration();
base.ConfigureServices(services); base.ConfigureServices(services);
} }

View File

@ -1844,6 +1844,28 @@ namespace ASC.Api.Settings
return changed; return changed;
} }
[Read("payment")]
public object PaymentSettings()
{
var settings = SettingsManager.LoadForDefaultTenant<AdditionalWhiteLabelSettings>();
var currentQuota = TenantExtra.GetTenantQuota();
var currentTariff = TenantExtra.GetCurrentTariff();
return
new
{
settings.SalesEmail,
settings.FeedbackAndSupportUrl,
settings.BuyUrl,
CoreBaseSettings.Standalone,
currentLicense = new
{
currentQuota.Trial,
currentTariff.DueDate.Date
}
};
}
private readonly int maxCount = 10; private readonly int maxCount = 10;
private readonly int expirationMinutes = 2; private readonly int expirationMinutes = 2;
private void CheckCache(string basekey) private void CheckCache(string basekey)

View File

@ -242,14 +242,14 @@ namespace ASC.Web.Studio.Core.Notify
} }
private static void BeforeTransferRequest(NotifyEngine sender, NotifyRequest request, IServiceScope serviceScope) private static void BeforeTransferRequest(NotifyEngine sender, NotifyRequest request, IServiceScope scope)
{ {
var aid = Guid.Empty; var aid = Guid.Empty;
var aname = string.Empty; var aname = string.Empty;
var tenant = serviceScope.ServiceProvider.GetService<TenantManager>().GetCurrentTenant(); var tenant = scope.ServiceProvider.GetService<TenantManager>().GetCurrentTenant();
var authContext = serviceScope.ServiceProvider.GetService<AuthContext>(); var authContext = scope.ServiceProvider.GetService<AuthContext>();
var userManager = serviceScope.ServiceProvider.GetService<UserManager>(); var userManager = scope.ServiceProvider.GetService<UserManager>();
var displayUserSettingsHelper = serviceScope.ServiceProvider.GetService<DisplayUserSettingsHelper>(); var displayUserSettingsHelper = scope.ServiceProvider.GetService<DisplayUserSettingsHelper>();
if (authContext.IsAuthenticated) if (authContext.IsAuthenticated)
{ {
@ -262,9 +262,7 @@ namespace ASC.Web.Studio.Core.Notify
.Replace("<", "&#60"); .Replace("<", "&#60");
} }
} }
using var scope = ServiceProvider.CreateScope();
var tenantExtra = scope.ServiceProvider.GetService<TenantExtra>(); var tenantExtra = scope.ServiceProvider.GetService<TenantExtra>();
var webItemManagerSecurity = scope.ServiceProvider.GetService<WebItemManagerSecurity>();
var webItemManager = scope.ServiceProvider.GetService<WebItemManager>(); var webItemManager = scope.ServiceProvider.GetService<WebItemManager>();
var configuration = scope.ServiceProvider.GetService<IConfiguration>(); var configuration = scope.ServiceProvider.GetService<IConfiguration>();
var tenantLogoManager = scope.ServiceProvider.GetService<TenantLogoManager>(); var tenantLogoManager = scope.ServiceProvider.GetService<TenantLogoManager>();
@ -390,7 +388,8 @@ namespace ASC.Web.Studio.Core.Notify
.AddCoreBaseSettingsService() .AddCoreBaseSettingsService()
.AddAdditionalWhiteLabelSettingsService() .AddAdditionalWhiteLabelSettingsService()
.AddCommonLinkUtilityService() .AddCommonLinkUtilityService()
.AddMailWhiteLabelSettingsService(); .AddMailWhiteLabelSettingsService()
.AddStudioNotifyHelperService();
} }
} }
} }

View File

@ -144,7 +144,7 @@ namespace ASC.Web.Studio.Core.Notify
if (string.IsNullOrEmpty(site)) throw new ArgumentNullException("site"); if (string.IsNullOrEmpty(site)) throw new ArgumentNullException("site");
message = (message ?? "").Trim(); message = (message ?? "").Trim();
var salesEmail = AdditionalWhiteLabelSettings.Instance(SettingsManager).SalesEmail ?? SetupInfo.SalesEmail; var salesEmail = SettingsManager.LoadForDefaultTenant<AdditionalWhiteLabelSettings>().SalesEmail ?? SetupInfo.SalesEmail;
var recipient = (IRecipient)(new DirectRecipient(AuthContext.CurrentAccount.ID.ToString(), string.Empty, new[] { salesEmail }, false)); var recipient = (IRecipient)(new DirectRecipient(AuthContext.CurrentAccount.ID.ToString(), string.Empty, new[] { salesEmail }, false));

View File

@ -488,7 +488,7 @@ namespace ASC.Web.Studio.Utility
public string GetHelpLink(SettingsManager settingsManager, AdditionalWhiteLabelSettingsHelper additionalWhiteLabelSettingsHelper, bool inCurrentCulture = true) public string GetHelpLink(SettingsManager settingsManager, AdditionalWhiteLabelSettingsHelper additionalWhiteLabelSettingsHelper, bool inCurrentCulture = true)
{ {
if (!AdditionalWhiteLabelSettings.Instance(settingsManager).HelpCenterEnabled) if (!settingsManager.LoadForDefaultTenant<AdditionalWhiteLabelSettings>().HelpCenterEnabled)
return string.Empty; return string.Empty;
var url = additionalWhiteLabelSettingsHelper.DefaultHelpCenterUrl; var url = additionalWhiteLabelSettingsHelper.DefaultHelpCenterUrl;

View File

@ -123,11 +123,6 @@ namespace ASC.Web.Core.WhiteLabel
} }
} }
public static AdditionalWhiteLabelSettings Instance(SettingsManager settingsManager)
{
return settingsManager.LoadForDefaultTenant<AdditionalWhiteLabelSettings>();
}
public ISettings GetDefault(IServiceProvider serviceProvider) public ISettings GetDefault(IServiceProvider serviceProvider)
{ {
return GetDefault(serviceProvider.GetService<IConfiguration>()); return GetDefault(serviceProvider.GetService<IConfiguration>());
@ -147,7 +142,7 @@ namespace ASC.Web.Core.WhiteLabel
{ {
get get
{ {
var url = Configuration["web.help-center"]; var url = Configuration["web:help-center"];
return string.IsNullOrEmpty(url) ? null : url; return string.IsNullOrEmpty(url) ? null : url;
} }
} }
@ -156,7 +151,7 @@ namespace ASC.Web.Core.WhiteLabel
{ {
get get
{ {
var url = Configuration["web.support-feedback"]; var url = Configuration["web:support-feedback"];
return string.IsNullOrEmpty(url) ? null : url; return string.IsNullOrEmpty(url) ? null : url;
} }
} }
@ -165,7 +160,7 @@ namespace ASC.Web.Core.WhiteLabel
{ {
get get
{ {
var url = Configuration["web.user-forum"]; var url = Configuration["web:user-forum"];
return string.IsNullOrEmpty(url) ? null : url; return string.IsNullOrEmpty(url) ? null : url;
} }
} }
@ -183,7 +178,7 @@ namespace ASC.Web.Core.WhiteLabel
{ {
get get
{ {
var email = Configuration["web.payment.email"]; var email = Configuration["web:payment:email"];
return !string.IsNullOrEmpty(email) ? email : "sales@onlyoffice.com"; return !string.IsNullOrEmpty(email) ? email : "sales@onlyoffice.com";
} }
} }
@ -192,7 +187,7 @@ namespace ASC.Web.Core.WhiteLabel
{ {
get get
{ {
var site = Configuration["web.teamlab-site"]; var site = Configuration["web:teamlab-site"];
return !string.IsNullOrEmpty(site) ? site + "/post.ashx?type=buyenterprise" : ""; return !string.IsNullOrEmpty(site) ? site + "/post.ashx?type=buyenterprise" : "";
} }
} }