Files: fix startedit

This commit is contained in:
pavelbannov 2021-10-01 11:04:19 +03:00
parent 24224a7437
commit 53c77f5214
3 changed files with 29 additions and 14 deletions

View File

@ -815,19 +815,14 @@ namespace ASC.Web.Files.Services.WCFService
return DocumentServiceHelper.GetDocKey(fileId, -1, DateTime.MinValue);
}
Configuration<string> configuration;
Configuration<T> configuration;
app = ThirdPartySelector.GetAppByFileId(fileId.ToString());
string key;
if (app == null)
{
DocumentServiceHelper.GetParams(fileId.ToString(), -1, doc, true, true, false, out configuration);
}
else
{
var file = app.GetFile(fileId.ToString(), out var editable);
DocumentServiceHelper.GetParams(file, true, editable ? FileShare.ReadWrite : FileShare.Read, false, editable, editable, editable, false, out configuration);
}
DocumentServiceHelper.GetParams(fileId, -1, doc, true, true, false, out configuration);
ErrorIf(!configuration.EditorConfig.ModeWrite
|| !(configuration.Document.Permissions.Edit
|| configuration.Document.Permissions.ModifyFilter
@ -835,9 +830,24 @@ namespace ASC.Web.Files.Services.WCFService
|| configuration.Document.Permissions.FillForms
|| configuration.Document.Permissions.Comment),
!string.IsNullOrEmpty(configuration.ErrorMessage) ? configuration.ErrorMessage : FilesCommonResource.ErrorMassage_SecurityException_EditFile);
var key = configuration.Document.Key;
key = configuration.Document.Key;
}
else
{
var file = app.GetFile(fileId.ToString(), out var editable);
DocumentServiceHelper.GetParams(file, true, editable ? FileShare.ReadWrite : FileShare.Read, false, editable, editable, editable, false, out var configuration1);
ErrorIf(!configuration1.EditorConfig.ModeWrite
|| !(configuration1.Document.Permissions.Edit
|| configuration1.Document.Permissions.ModifyFilter
|| configuration1.Document.Permissions.Review
|| configuration1.Document.Permissions.FillForms
|| configuration1.Document.Permissions.Comment),
!string.IsNullOrEmpty(configuration1.ErrorMessage) ? configuration1.ErrorMessage : FilesCommonResource.ErrorMassage_SecurityException_EditFile);
key = configuration1.Document.Key;
}
if (!DocumentServiceTrackerHelper.StartTrack(fileId.ToString(), key))
if (!DocumentServiceTrackerHelper.StartTrack(fileId, key))
{
throw new Exception(FilesCommonResource.ErrorMassage_StartEditing);
}

View File

@ -34,6 +34,7 @@ using System.Net;
using System.Runtime.Serialization;
using System.Security.Cryptography;
using System.Text;
using System.Text.Encodings.Web;
using System.Text.Json.Serialization;
using System.Text.RegularExpressions;
@ -268,7 +269,11 @@ namespace ASC.Web.Core.Files
body.Token = token;
}
var bodyString = System.Text.Json.JsonSerializer.Serialize(body, new System.Text.Json.JsonSerializerOptions() { IgnoreNullValues = true });
var bodyString = System.Text.Json.JsonSerializer.Serialize(body, new System.Text.Json.JsonSerializerOptions()
{
IgnoreNullValues = true,
Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping
});
var bytes = Encoding.UTF8.GetBytes(bodyString ?? "");
request.ContentLength = bytes.Length;

View File

@ -74,7 +74,7 @@ namespace ASC.Web.Core.Files
get { return BaseCommonLinkUtility.ToAbsolute(FilesBaseVirtualPath); }
}
public const string FileId = "fileId";
public const string FileId = "fileid";
public const string FolderId = "folderid";
public const string Version = "version";
public const string FileUri = "fileuri";