diff --git a/EnvelopeGenerator.Common/Entities/EnvelopeResponse.vb b/EnvelopeGenerator.Common/Entities/EnvelopeResponse.vb index 11e1cdae..9760c83c 100644 --- a/EnvelopeGenerator.Common/Entities/EnvelopeResponse.vb +++ b/EnvelopeGenerator.Common/Entities/EnvelopeResponse.vb @@ -1,4 +1,4 @@ Public Class EnvelopeResponse Public Property Envelope As Envelope - Public Property ReceiverId As Integer + Public Property Receiver As EnvelopeReceiver End Class diff --git a/EnvelopeGenerator.Web/Constants.cs b/EnvelopeGenerator.Web/Constants.cs new file mode 100644 index 00000000..7f9e5cf2 --- /dev/null +++ b/EnvelopeGenerator.Web/Constants.cs @@ -0,0 +1,12 @@ +namespace EnvelopeGenerator.Web +{ + public class Constants + { + public enum ErrorType + { + None, + ServerError, + FilesystemError + } + } +} diff --git a/EnvelopeGenerator.Web/Controllers/DocumentController.cs b/EnvelopeGenerator.Web/Controllers/DocumentController.cs index 55bc921f..a1f7edd9 100644 --- a/EnvelopeGenerator.Web/Controllers/DocumentController.cs +++ b/EnvelopeGenerator.Web/Controllers/DocumentController.cs @@ -1,9 +1,9 @@ -using DigitalData.Modules.Logging; +using Microsoft.AspNetCore.Mvc; +using DigitalData.Modules.Logging; using EnvelopeGenerator.Common; using EnvelopeGenerator.Web.Services; -using Microsoft.AspNetCore.Mvc; -using System.Reflection.Metadata; -using static EnvelopeGenerator.Web.Handler.FileHandler; +using static EnvelopeGenerator.Common.Constants; +using static EnvelopeGenerator.Web.Constants; namespace EnvelopeGenerator.Web.Controllers { @@ -24,15 +24,16 @@ namespace EnvelopeGenerator.Web.Controllers [HttpGet] [Route("api/document/{envelopeKey}")] - [IgnoreAntiforgeryToken] public async Task Get(string envelopeKey) { try { logger.Info("Handling file download."); + // Validate Envelope Key EnvelopeResponse r = api.EnsureValidEnvelopeKey(envelopeKey); + // Load document info var Request = ControllerContext.HttpContext.Request; var document = api.GetDocument(Request, envelopeKey); @@ -43,6 +44,15 @@ namespace EnvelopeGenerator.Web.Controllers // Return the document as bytes return File(bytes, "application/octet-stream"); } + catch (IOException e) + { + logger.Error(e); + return Problem( + statusCode: 500, + detail: e.Message, + type: ErrorType.ServerError.ToString()); + + } catch (Exception e) { // Better error handling & reporting @@ -57,25 +67,46 @@ namespace EnvelopeGenerator.Web.Controllers [HttpPost] [Route("api/document/{envelopeKey}")] - [IgnoreAntiforgeryToken] public async Task Update(string envelopeKey) { try { logger.Info("Handling file update."); - api.EnsureValidEnvelopeKey(envelopeKey); + // Validate Envelope Key + EnvelopeResponse r = api.EnsureValidEnvelopeKey(envelopeKey); + // Load Document info var Request = ControllerContext.HttpContext.Request; var document = api.GetDocument(Request, envelopeKey); + // Try to update the document with new data if (!await api.UpdateDocument(Request.Body, document.Filepath)) { throw new IOException("Document could not be saved to disk!"); } + // Add history entry + database.InsertHistoryEntry(new EnvelopeHistoryEntry() + { + ActionDescription = "Dokument wurde signiert", + ActionDate = DateTime.Now, + ActionType = EnvelopeHistoryActionType.Signed, + EnvelopeId = r.Envelope.Id, + UserReference = r.Receiver.Email + }); + return Ok(); } + catch (IOException e) + { + logger.Error(e); + return Problem( + statusCode: 500, + detail: e.Message, + type: ErrorType.ServerError.ToString()); + + } catch (Exception e) { // Better error handling & reporting diff --git a/EnvelopeGenerator.Web/Controllers/EnvelopeController.cs b/EnvelopeGenerator.Web/Controllers/EnvelopeController.cs index 2334d1c6..af019231 100644 --- a/EnvelopeGenerator.Web/Controllers/EnvelopeController.cs +++ b/EnvelopeGenerator.Web/Controllers/EnvelopeController.cs @@ -1,8 +1,9 @@ -using EnvelopeGenerator.Common; +using DigitalData.Modules.Logging; +using EnvelopeGenerator.Common; using EnvelopeGenerator.Web.Services; using Microsoft.AspNetCore.Mvc; using NLog; -using static EnvelopeGenerator.Web.Handler.FileHandler; +using static EnvelopeGenerator.Web.Constants; namespace EnvelopeGenerator.Web.Controllers { @@ -23,7 +24,6 @@ namespace EnvelopeGenerator.Web.Controllers [HttpGet] [Route("api/envelope/{envelopeKey}")] - [IgnoreAntiforgeryToken] public IActionResult Get(string envelopeKey) { try @@ -50,16 +50,13 @@ namespace EnvelopeGenerator.Web.Controllers [HttpPost] [Route("api/envelope/{envelopeKey}")] - [IgnoreAntiforgeryToken] public async Task Update(string envelopeKey) { try { logger.Info("Handling envelope saving."); - api.EnsureValidEnvelopeKey(envelopeKey); - - EnvelopeResponse r = database.LoadEnvelope(envelopeKey); + EnvelopeResponse r = api.EnsureValidEnvelopeKey(envelopeKey); var Request = ControllerContext.HttpContext.Request; var document = api.GetDocument(Request, envelopeKey); @@ -71,13 +68,10 @@ namespace EnvelopeGenerator.Web.Controllers throw new ArgumentNullException("AnnotationData"); } - State state = api.GetState(logging.LogConfig, database.MSSQL); - DocumentStatusModel model = new(state); - - model.InsertOrUpdate(new DocumentStatus() + database.InsertDocumentStatus(new DocumentStatus() { EnvelopeId = r.Envelope.Id, - ReceiverId = r.ReceiverId, + ReceiverId = r.Receiver.Id, Value = annotationData, Status = Common.Constants.DocumentStatus.Signed }); diff --git a/EnvelopeGenerator.Web/Controllers/HistoryController.cs b/EnvelopeGenerator.Web/Controllers/HistoryController.cs deleted file mode 100644 index 2f0e58f0..00000000 --- a/EnvelopeGenerator.Web/Controllers/HistoryController.cs +++ /dev/null @@ -1,75 +0,0 @@ -using DigitalData.Modules.Logging; -using EnvelopeGenerator.Common; -using EnvelopeGenerator.Web.Services; -using Microsoft.AspNetCore.Mvc; -using Microsoft.Extensions.Primitives; -using static EnvelopeGenerator.Common.Constants; - -namespace EnvelopeGenerator.Web.Controllers -{ - public class HistoryController : Controller - { - private readonly DatabaseService database; - private readonly LoggingService logging; - private readonly Logger logger; - private readonly ApiService api; - - public HistoryController(DatabaseService database, LoggingService logging, ApiService api) - { - this.database = database; - this.logging = logging; - this.logger = logging.LogConfig.GetLoggerFor(GetType().Name); - this.api = api; - } - - [HttpPost] - [Route("api/history/{envelopeKey}")] - [IgnoreAntiforgeryToken] - public IActionResult Create(string envelopeKey, [FromBody] ActionObject action) - { - try - { - var Request = ControllerContext.HttpContext.Request; - - api.EnsureValidEnvelopeKey(envelopeKey); - EnvelopeResponse r = database.LoadEnvelope(envelopeKey); - var receiver = r.Envelope.Receivers.Where(receiver => receiver.Id == r.ReceiverId).SingleOrDefault(); - - if (receiver == null) - { - return BadRequest(); - } - - string actionTypeString = action.actionType; - string actionDescription = action.actionDescription; - - if (!Enum.TryParse(actionTypeString, out var actionType)) - { - return BadRequest(); - }; - - database.InsertHistoryEntry(new EnvelopeHistoryEntry() - { - ActionDescription = actionDescription, - ActionDate = DateTime.Now, - ActionType = actionType, - EnvelopeId = r.Envelope.Id, - UserReference = receiver.Email - }); - - return Ok(); - } - catch (Exception e) - { - logger.Error(e); - return Problem(statusCode: 500); - } - } - - public class ActionObject - { - public string actionType { get; set; } - public string actionDescription { get; set; } - } - } -} diff --git a/EnvelopeGenerator.Web/Handler/FileHandler.cs b/EnvelopeGenerator.Web/Handler/FileHandler.cs deleted file mode 100644 index ed491c13..00000000 --- a/EnvelopeGenerator.Web/Handler/FileHandler.cs +++ /dev/null @@ -1,281 +0,0 @@ -using DigitalData.Modules.Database; -using DigitalData.Modules.Logging; -using EnvelopeGenerator.Common; -using EnvelopeGenerator.Common.My.Resources; -using EnvelopeGenerator.Web.Services; -using Microsoft.Extensions.Primitives; -using System.IO.Pipelines; -using System.Reflection.Metadata.Ecma335; -using System.Text; - -namespace EnvelopeGenerator.Web.Handler -{ - public class FileHandler - { - public class PostResult - { - readonly bool Ok = true; - readonly string ErrorMessage = ""; - readonly ErrorType ErrorType = ErrorType.None; - - public PostResult() - { - Ok = true; - } - - public PostResult(ErrorType errorType, string errorMessage) - { - Ok = false; - ErrorType = errorType; - ErrorMessage = errorMessage; - } - } - - public enum ErrorType - { - None, - ServerError, - FilesystemError - } - - /// - /// URL: GET /api/envelope/{envelopeKey} - /// - /// Returns a - /// - /// - public IResult HandleGetEnvelope(HttpContext ctx, DatabaseService database, LoggingService logging) - { - var logger = logging.LogConfig.GetLogger("FileHandler"); - - try - { - logger.Info("Handling envelope loading."); - - // Load Envelope from EnvelopeKey - string envelopeKey = EnsureValidEnvelopeKey(logger, ctx.Request); - EnvelopeResponse r = database.LoadEnvelope(envelopeKey); - - // Return the envelope and additional data as json - return Results.Json(r); - - } - catch (Exception e) - { - // Better error handling & reporting - logger.Error(e); - return Results.Problem(e.Message); - - } - } - - /// - /// URL: GET /api/document/{envelopeKey}?index={documentIndex} - /// - /// Returns a document for the supplied EnvelopeKey and Document Id / Index - /// - /// file buffer of the requested document - public async Task HandleGetDocument(HttpContext ctx, DatabaseService database, LoggingService logging) - { - var logger = logging.LogConfig.GetLogger("FileHandler"); - - try - { - logger.Info("Handling file download."); - - // Load Envelope from EnvelopeKey - string envelopeKey = EnsureValidEnvelopeKey(logger, ctx.Request); - EnvelopeResponse r = database.LoadEnvelope(envelopeKey); - - // Get the document Index - int documentId = EnsureValidDocumentIndex(logger, ctx.Request); - var document = GetDocument(r.Envelope, documentId); - - // Load the document from disk - var bytes = await File.ReadAllBytesAsync(document.Filepath); - logger.Info("Serving file, size: [{0}]", bytes.Length); - - // Return the document as bytes - return Results.File(bytes); - } - catch (Exception e) - { - // Better error handling & reporting - logger.Error(e); - return Results.Problem( - statusCode: 500, - detail: e.Message, - type: ErrorType.ServerError.ToString()); - - } - } - - public async Task HandlePostDocument(HttpContext ctx, DatabaseService database, LoggingService logging) - { - var logger = logging.LogConfig.GetLogger("FileHandler"); - - try - { - logger.Info("Handling file upload."); - - // Load Envelope from EnvelopeKey - string envelopeKey = EnsureValidEnvelopeKey(logger, ctx.Request); - EnvelopeResponse response = database.LoadEnvelope(envelopeKey); - - // Get the document Index - int documentId = EnsureValidDocumentIndex(logger, ctx.Request); - var document = GetDocument(response.Envelope, documentId); - - using FileStream fs = new(document.Filepath, FileMode.Open); - await ctx.Request.Body.CopyToAsync(fs); - fs.Flush(); - - return Results.Ok(); - } - catch (Exception e) - { - // Better error handling & reporting - logger.Error(e); - return Results.Problem( - statusCode: 500, - detail: e.Message, - type: ErrorType.ServerError.ToString()); - } - } - - public async Task HandlePostEnvelope(HttpContext ctx, DatabaseService database, LoggingService logging) - { - var logger = logging.LogConfig.GetLogger("FileHandler"); - - try - { - logger.Info("Handling envelope saving."); - - // Load Envelope from EnvelopeKey - string envelopeKey = EnsureValidEnvelopeKey(logger, ctx.Request); - EnvelopeResponse r = database.LoadEnvelope(envelopeKey); - - // Get the document Index - int documentId = EnsureValidDocumentIndex(logger, ctx.Request); - var document = GetDocument(r.Envelope, documentId); - - string? annotationData = await EnsureValidAnnotationData(logger, ctx.Request); - - if (annotationData == null) - { - throw new ArgumentNullException("AnnotationData"); - } - - State state = GetState(logging.LogConfig, database.MSSQL); - DocumentStatusModel model = new(state); - - model.InsertOrUpdate(new DocumentStatus() - { - EnvelopeId = r.Envelope.Id, - ReceiverId = r.ReceiverId, - Value = annotationData, - Status = Common.Constants.DocumentStatus.Signed - }); - - return Results.Ok(); - } - catch (Exception e) - { - // Better error handling & reporting - logger.Error(e); - return Results.Problem( - statusCode: 500, - detail: e.Message, - type: ErrorType.ServerError.ToString()); - } - - } - - #region Private - - - private State GetState(LogConfig LogConfig, MSSQLServer Database) - { - return new State - { - LogConfig = LogConfig, - Database = Database, - }; - } - - private int EnsureValidDocumentIndex(Logger logger, HttpRequest request) - { - if (request.Query.TryGetValue("index", out StringValues documentIndexString)) - { - try - { - return int.Parse(documentIndexString.First()); - } - catch (Exception e) - { - throw new ArgumentNullException("DocumentIndex", e); - } - } - else - { - throw new ArgumentNullException("DocumentIndex"); - } - } - - private string EnsureValidEnvelopeKey(Logger logger, HttpRequest request) - { - logger.Debug("Parsing EnvelopeKey.."); - var envelopeKey = request.RouteValues["envelopeKey"] as string; - - if (string.IsNullOrEmpty(envelopeKey)) - throw new ArgumentNullException("EnvelopeKey"); - - Tuple result = Helpers.DecodeEnvelopeReceiverId(envelopeKey); - logger.Debug("EnvelopeUUID: [{0}]", result.Item1); - logger.Debug("ReceiverSignature: [{0}]", result.Item2); - - if (string.IsNullOrEmpty(result.Item1)) - throw new ArgumentNullException("EnvelopeUUID"); - - if (string.IsNullOrEmpty(result.Item2)) - throw new ArgumentNullException("ReceiverSignature"); - - return envelopeKey; - } - - private async Task EnsureValidAnnotationData(Logger logger, HttpRequest request) - { - logger.Debug("Parsing AnnotationData.."); - - try - { - using MemoryStream ms = new(); - await request.BodyReader.CopyToAsync(ms); - var bytes = ms.ToArray(); - - return Encoding.UTF8.GetString(bytes); - } - catch (Exception e) - { - logger.Error(e); - return null; - } - - } - - private EnvelopeDocument GetDocument(Common.Envelope envelope, int documentId) - { - var document = envelope.Documents. - Where(d => d.Id == documentId). - FirstOrDefault(); - - if (document == null) - throw new ArgumentException("DocumentId"); - - return document; - } - #endregion - } - - -} diff --git a/EnvelopeGenerator.Web/Pages/_Layout.cshtml b/EnvelopeGenerator.Web/Pages/_Layout.cshtml index b5e194c2..4efd7d5a 100644 --- a/EnvelopeGenerator.Web/Pages/_Layout.cshtml +++ b/EnvelopeGenerator.Web/Pages/_Layout.cshtml @@ -7,8 +7,9 @@ - + + @@ -30,5 +31,7 @@ + + @Html.AntiForgeryToken() diff --git a/EnvelopeGenerator.Web/Scripts/app.ts b/EnvelopeGenerator.Web/Scripts/app.ts index af3bbb8e..d3611ccf 100644 --- a/EnvelopeGenerator.Web/Scripts/app.ts +++ b/EnvelopeGenerator.Web/Scripts/app.ts @@ -254,12 +254,12 @@ class Annotation { class Network { public getEnvelope(envelopeKey: string): Promise { - return fetch(`/api/envelope/${envelopeKey}`, { credentials: "include" }) + return fetch(`/api/envelope/${envelopeKey}`, this.withCSRFToken({ credentials: "include" })) .then(res => res.json()); } public getDocument(envelopeKey: string, documentId: number): Promise { - return fetch(`/api/document/${envelopeKey}?index=${documentId}`, { credentials: "include" }) + return fetch(`/api/document/${envelopeKey}?index=${documentId}`, this.withCSRFToken({ credentials: "include" })) .then(res => res.arrayBuffer()); } @@ -272,7 +272,7 @@ class Network { } console.debug("PostDocument/Calling url: " + url) - return fetch(url, options) + return fetch(url, this.withCSRFToken(options)) .then(this.handleResponse) .then((res: Response) => { if (!res.ok) { @@ -291,7 +291,7 @@ class Network { } console.debug("PostEnvelope/Calling url: " + url) - return fetch(url, options) + return fetch(url, this.withCSRFToken(options)) .then(this.handleResponse) .then((res: Response) => { if (!res.ok) { @@ -319,7 +319,7 @@ class Network { } console.debug("PostHistory/Calling url: " + url) - return fetch(url, options) + return fetch(url, this.withCSRFToken(options)) .then(this.handleResponse) .then((res: Response) => { if (!res.ok) { @@ -329,6 +329,14 @@ class Network { }); } + private withCSRFToken(options: RequestInit): RequestInit { + const token = (document.getElementsByName("__RequestVerificationToken")[0] as any).value; + let headers = options.headers; + options.headers = { ...headers, 'X-XSRF-TOKEN': token }; + + return options; + } + private handleResponse(res: Response) { if (!res.ok) { console.log(`Request failed with status ${res.status}`) diff --git a/EnvelopeGenerator.Web/Services/ApiService.cs b/EnvelopeGenerator.Web/Services/ApiService.cs index 7c501c1f..d427a7f0 100644 --- a/EnvelopeGenerator.Web/Services/ApiService.cs +++ b/EnvelopeGenerator.Web/Services/ApiService.cs @@ -2,6 +2,7 @@ using DigitalData.Modules.Logging; using EnvelopeGenerator.Common; using Microsoft.Extensions.Primitives; +using System.Reflection; using System.Reflection.Metadata; using System.Text; @@ -39,9 +40,9 @@ namespace EnvelopeGenerator.Web.Services if (string.IsNullOrEmpty(result.Item2)) throw new ArgumentNullException("ReceiverSignature"); - EnvelopeResponse r = database.LoadEnvelope(envelopeKey); + EnvelopeResponse response = database.LoadEnvelope(envelopeKey); - return r; + return response; } public async Task EnsureValidAnnotationData(HttpRequest request) @@ -118,10 +119,6 @@ namespace EnvelopeGenerator.Web.Services } - - - - public State GetState(LogConfig LogConfig, MSSQLServer Database) { return new State diff --git a/EnvelopeGenerator.Web/Services/DatabaseService.cs b/EnvelopeGenerator.Web/Services/DatabaseService.cs index f058324b..2cd1707f 100644 --- a/EnvelopeGenerator.Web/Services/DatabaseService.cs +++ b/EnvelopeGenerator.Web/Services/DatabaseService.cs @@ -13,7 +13,7 @@ namespace EnvelopeGenerator.Web.Services private ReceiverModel receiverModel; private ElementModel elementModel; private HistoryModel historyModel; - + private DocumentStatusModel documentStatusModel; private readonly LogConfig _logConfig; private readonly Logger _logger; @@ -56,6 +56,7 @@ namespace EnvelopeGenerator.Web.Services receiverModel = new(state); elementModel = new(state); historyModel = new(state); + documentStatusModel = new(state); } public EnvelopeResponse LoadEnvelope(string pEnvelopeKey) @@ -65,11 +66,28 @@ namespace EnvelopeGenerator.Web.Services var receiverSignature = result.Item2; var receiverId = receiverModel.GetReceiverIdBySignature(receiverSignature); - Envelope envelope = envelopeModel.GetByUuid(envelopeUuid); + Envelope? envelope = envelopeModel.GetByUuid(envelopeUuid); + + if (envelope == null) + { + throw new NullReferenceException("Envelope not found"); + } + + if (envelope.Receivers == null) + { + throw new NullReferenceException("Receivers for envelope not loaded"); + } + + EnvelopeReceiver? receiver = envelope.Receivers.Where(r => r.Id == receiverId).SingleOrDefault(); + + if (receiver == null) + { + throw new NullReferenceException("Receiver not found"); + } return new() { - ReceiverId = receiverId, + Receiver = receiver, Envelope = envelope }; } @@ -89,5 +107,10 @@ namespace EnvelopeGenerator.Web.Services return historyModel.Insert(historyEntry); } + public bool InsertDocumentStatus(DocumentStatus documentStatus) + { + return documentStatusModel.InsertOrUpdate(documentStatus); + } + } } diff --git a/EnvelopeGenerator.Web/wwwroot/js/app.js b/EnvelopeGenerator.Web/wwwroot/js/app.js index 74f54f83..b6be5021 100644 --- a/EnvelopeGenerator.Web/wwwroot/js/app.js +++ b/EnvelopeGenerator.Web/wwwroot/js/app.js @@ -1,3 +1,14 @@ +var __assign = (this && this.__assign) || function () { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { @@ -101,7 +112,7 @@ var App = /** @class */ (function () { return [4 /*yield*/, App.Instance.create(annotations)]; case 7: createdAnnotations = _b.sent(); - description = "Umschlag wurde geöffnet"; + description = "Umschlag wurde ge�ffnet"; return [4 /*yield*/, App.Network.postHistory(App.envelopeKey, ActionType.Seen, description)]; case 8: _b.sent(); @@ -127,10 +138,10 @@ var App = /** @class */ (function () { case 2: result = _b.sent(); if (result == true) { - alert("Dokument zurückgesetzt!"); + alert("Dokument zur�ckgesetzt!"); } else { - alert("Fehler beim Zurücksetzen des Dokuments!"); + alert("Fehler beim Zur�cksetzen des Dokuments!"); } return [3 /*break*/, 5]; case 3: return [4 /*yield*/, App.handleFinish(null)]; @@ -141,7 +152,7 @@ var App = /** @class */ (function () { alert("Dokument erfolgreich signiert!"); } else { - alert("Fehler beim Abschließen des Dokuments!"); + alert("Fehler beim Abschlie�en des Dokuments!"); } return [3 /*break*/, 5]; case 5: return [2 /*return*/]; @@ -216,7 +227,7 @@ var App = /** @class */ (function () { return __awaiter(this, void 0, void 0, function () { var result; return __generator(this, function (_a) { - if (confirm("Wollen Sie das Dokument und alle erstellten Signaturen zurücksetzen?")) { + if (confirm("Wollen Sie das Dokument und alle erstellten Signaturen zur�cksetzen?")) { result = App.Annotation.deleteAnnotations(App.Instance); return [2 /*return*/, true]; } @@ -336,11 +347,11 @@ var Network = /** @class */ (function () { function Network() { } Network.prototype.getEnvelope = function (envelopeKey) { - return fetch("/api/envelope/".concat(envelopeKey), { credentials: "include" }) + return fetch("/api/envelope/".concat(envelopeKey), this.withCSRFToken({ credentials: "include" })) .then(function (res) { return res.json(); }); }; Network.prototype.getDocument = function (envelopeKey, documentId) { - return fetch("/api/document/".concat(envelopeKey, "?index=").concat(documentId), { credentials: "include" }) + return fetch("/api/document/".concat(envelopeKey, "?index=").concat(documentId), this.withCSRFToken({ credentials: "include" })) .then(function (res) { return res.arrayBuffer(); }); }; Network.prototype.postDocument = function (envelopeKey, documentId, buffer) { @@ -351,7 +362,7 @@ var Network = /** @class */ (function () { body: buffer }; console.debug("PostDocument/Calling url: " + url); - return fetch(url, options) + return fetch(url, this.withCSRFToken(options)) .then(this.handleResponse) .then(function (res) { if (!res.ok) { @@ -369,7 +380,7 @@ var Network = /** @class */ (function () { body: jsonString }; console.debug("PostEnvelope/Calling url: " + url); - return fetch(url, options) + return fetch(url, this.withCSRFToken(options)) .then(this.handleResponse) .then(function (res) { if (!res.ok) { @@ -394,7 +405,7 @@ var Network = /** @class */ (function () { body: JSON.stringify(data) }; console.debug("PostHistory/Calling url: " + url); - return fetch(url, options) + return fetch(url, this.withCSRFToken(options)) .then(this.handleResponse) .then(function (res) { if (!res.ok) { @@ -404,6 +415,12 @@ var Network = /** @class */ (function () { return true; }); }; + Network.prototype.withCSRFToken = function (options) { + var token = document.getElementsByName("__RequestVerificationToken")[0].value; + var headers = options.headers; + options.headers = __assign(__assign({}, headers), { 'X-XSRF-TOKEN': token }); + return options; + }; Network.prototype.handleResponse = function (res) { if (!res.ok) { console.log("Request failed with status ".concat(res.status)); @@ -435,7 +452,7 @@ var UI = /** @class */ (function () { type: "custom", id: "button-reset", className: "button-reset", - title: "Zurücksetzen", + title: "Zur�cksetzen", onPress: function () { callback("RESET"); }, @@ -445,7 +462,7 @@ var UI = /** @class */ (function () { type: "custom", id: "button-finish", className: "button-finish", - title: "Abschließen", + title: "Abschlie�en", onPress: function () { callback("FINISH"); }, diff --git a/EnvelopeGenerator.Web/wwwroot/js/app.js.map b/EnvelopeGenerator.Web/wwwroot/js/app.js.map index c00aa419..673e2dc1 100644 --- a/EnvelopeGenerator.Web/wwwroot/js/app.js.map +++ b/EnvelopeGenerator.Web/wwwroot/js/app.js.map @@ -1 +1 @@ -{"version":3,"file":"app.js","sourceRoot":"","sources":["../../Scripts/app.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"app.js","sourceRoot":"","sources":["../../Scripts/app.ts"],"names":[],"mappings":"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"} \ No newline at end of file