aboutsummaryrefslogtreecommitdiff
path: root/src/server
diff options
context:
space:
mode:
Diffstat (limited to 'src/server')
-rw-r--r--src/server/ApiManagers/PDFManager.ts5
-rw-r--r--src/server/ApiManagers/UploadManager.ts20
-rw-r--r--src/server/DashUploadUtils.ts7
-rw-r--r--src/server/RouteManager.ts2
-rw-r--r--src/server/authentication/AuthenticationManager.ts15
-rw-r--r--src/server/authentication/Passport.ts6
-rw-r--r--src/server/server_Initialization.ts2
7 files changed, 30 insertions, 27 deletions
diff --git a/src/server/ApiManagers/PDFManager.ts b/src/server/ApiManagers/PDFManager.ts
index 2b4212588..e419d3ac4 100644
--- a/src/server/ApiManagers/PDFManager.ts
+++ b/src/server/ApiManagers/PDFManager.ts
@@ -2,8 +2,7 @@ import ApiManager, { Registration } from "./ApiManager";
import { Method } from "../RouteManager";
import RouteSubscriber from "../RouteSubscriber";
import { existsSync, createReadStream, createWriteStream } from "fs";
-const pdfjs = require('pdfjs-dist/es5/build/pdf.js');
-import * as Pdfjs from 'pdfjs-dist';
+import * as Pdfjs from 'pdfjs-dist/legacy/build/pdf';
import { createCanvas } from "canvas";
const imageSize = require("probe-image-size");
import * as express from "express";
@@ -84,7 +83,7 @@ async function CreateThumbnail(coreFilename: string, pageNum: number, res: expre
});
}
-function dispatchThumbnail(res: express.Response, { width, height }: Pdfjs.PDFPageViewport, thumbnailName: string) {
+function dispatchThumbnail(res: express.Response, { width, height }: Pdfjs.PageViewport, thumbnailName: string) {
res.send({
path: clientPathToFile(Directory.pdf_thumbnails, thumbnailName),
width,
diff --git a/src/server/ApiManagers/UploadManager.ts b/src/server/ApiManagers/UploadManager.ts
index 597ff1ce0..8da08fe33 100644
--- a/src/server/ApiManagers/UploadManager.ts
+++ b/src/server/ApiManagers/UploadManager.ts
@@ -48,15 +48,19 @@ export default class UploadManager extends ApiManager {
method: Method.POST,
subscription: "/uploadFormData",
secureHandler: async ({ req, res }) => {
- const form = new formidable.IncomingForm();
- form.uploadDir = pathToDirectory(Directory.parsed_files);
- form.keepExtensions = true;
+ const form = new formidable.IncomingForm({
+ keepExtensions: true,
+ uploadDir: pathToDirectory(Directory.parsed_files)
+ });
return new Promise<void>(resolve => {
form.parse(req, async (_err, _fields, files) => {
const results: Upload.FileResponse[] = [];
for (const key in files) {
- const result = await DashUploadUtils.upload(files[key]);
- result && !(result.result instanceof Error) && results.push(result);
+ const f = files[key];
+ if (!Array.isArray(f)) {
+ const result = await DashUploadUtils.upload(f);
+ result && !(result.result instanceof Error) && results.push(result);
+ }
}
_success(res, results);
resolve();
@@ -140,8 +144,7 @@ export default class UploadManager extends ApiManager {
subscription: "/uploadDoc",
secureHandler: ({ req, res }) => {
- const form = new formidable.IncomingForm();
- form.keepExtensions = true;
+ const form = new formidable.IncomingForm({ keepExtensions: true });
// let path = req.body.path;
const ids: { [id: string]: string } = {};
let remap = true;
@@ -192,7 +195,8 @@ export default class UploadManager extends ApiManager {
let id: string = "";
try {
for (const name in files) {
- const path_2 = files[name].path;
+ const f = files[name];
+ const path_2 = Array.isArray(f) ? "" : f.path;
const zip = new AdmZip(path_2);
zip.getEntries().forEach((entry: any) => {
if (!entry.entryName.startsWith("files/")) return;
diff --git a/src/server/DashUploadUtils.ts b/src/server/DashUploadUtils.ts
index 800717d99..7073ee90b 100644
--- a/src/server/DashUploadUtils.ts
+++ b/src/server/DashUploadUtils.ts
@@ -16,6 +16,7 @@ import { clientPathToFile, Directory, pathToDirectory, serverPathToFile } from '
import { resolvedServerUrl } from "./server_Initialization";
import { AcceptableMedia, Upload } from './SharedMediaTypes';
import request = require('request-promise');
+import formidable = require('formidable');
const { exec } = require("child_process");
const parse = require('pdf-parse');
const ffmpeg = require("fluent-ffmpeg");
@@ -70,7 +71,7 @@ export namespace DashUploadUtils {
else {
console.log(`stdout: ${stdout}`);
const data = { size: 0, path: videoId + ".mp4", name: videoId, type: "video/mp4" };
- const file = { ...data, toJSON: () => data };
+ const file = { ...data, toJSON: () => ({ ...data, filename: data.path.replace(/.*\//, ""), mtime: null, length: 0, mime: "", toJson: () => undefined as any }) };
res(MoveParsedFile(file, Directory.videos));
}
});
@@ -79,7 +80,7 @@ export namespace DashUploadUtils {
export async function upload(file: File): Promise<Upload.FileResponse> {
const { type, path, name } = file;
- const types = type.split("/");
+ const types = type?.split("/") ?? [];
const category = types[0];
let format = `.${types[1]}`;
@@ -273,7 +274,7 @@ export namespace DashUploadUtils {
* @param suffix If the file doesn't have a suffix and you want to provide it one
* to appear in the new location
*/
- export async function MoveParsedFile(file: File, destination: Directory, suffix: string | undefined = undefined, text?: string): Promise<Upload.FileResponse> {
+ export async function MoveParsedFile(file: formidable.File, destination: Directory, suffix: string | undefined = undefined, text?: string): Promise<Upload.FileResponse> {
const { path: sourcePath } = file;
let name = path.basename(sourcePath);
suffix && (name += suffix);
diff --git a/src/server/RouteManager.ts b/src/server/RouteManager.ts
index 78b75d6be..aa9bfcfa7 100644
--- a/src/server/RouteManager.ts
+++ b/src/server/RouteManager.ts
@@ -124,7 +124,7 @@ export default class RouteManager {
}
await tryExecute(secureHandler, { ...core, user });
} else {
- req.session!.target = target;
+ //req.session!.target = target;
if (publicHandler) {
await tryExecute(publicHandler, core);
if (!res.headersSent) {
diff --git a/src/server/authentication/AuthenticationManager.ts b/src/server/authentication/AuthenticationManager.ts
index 3fbd4b3a7..b736f0d35 100644
--- a/src/server/authentication/AuthenticationManager.ts
+++ b/src/server/authentication/AuthenticationManager.ts
@@ -55,7 +55,7 @@ export let postSignup = (req: Request, res: Response, next: NextFunction) => {
const user = new User(model);
- User.findOne({ email }, (err, existingUser) => {
+ User.findOne({ email }, (err: any, existingUser: any) => {
if (err) { return next(err); }
if (existingUser) {
return res.redirect("/login");
@@ -72,9 +72,8 @@ export let postSignup = (req: Request, res: Response, next: NextFunction) => {
};
const tryRedirectToTarget = (req: Request, res: Response) => {
- if (req.session && req.session.target) {
- const target = req.session.target;
- req.session.target = undefined;
+ const target = (req.session as any)?.target;
+ if (req.session && target) {
res.redirect(target);
} else {
res.redirect("/home");
@@ -88,7 +87,7 @@ const tryRedirectToTarget = (req: Request, res: Response) => {
*/
export let getLogin = (req: Request, res: Response) => {
if (req.user) {
- req.session!.target = undefined;
+ //req.session.target = undefined;
return res.redirect("/home");
}
res.render("login.pug", {
@@ -160,7 +159,7 @@ export let postForgot = function (req: Request, res: Response, next: NextFunctio
});
},
function (token: string, done: any) {
- User.findOne({ email }, function (err, user: DashUserModel) {
+ User.findOne({ email }, function (err: any, user: DashUserModel) {
if (!user) {
// NO ACCOUNT WITH SUBMITTED EMAIL
res.redirect("/forgotPassword");
@@ -202,7 +201,7 @@ export let postForgot = function (req: Request, res: Response, next: NextFunctio
};
export let getReset = function (req: Request, res: Response) {
- User.findOne({ passwordResetToken: req.params.token, passwordResetExpires: { $gt: Date.now() } }, function (err, user: DashUserModel) {
+ User.findOne({ passwordResetToken: req.params.token, passwordResetExpires: { $gt: Date.now() } }, function (err: any, user: DashUserModel) {
if (!user || err) {
return res.redirect("/forgotPassword");
}
@@ -216,7 +215,7 @@ export let getReset = function (req: Request, res: Response) {
export let postReset = function (req: Request, res: Response) {
async.waterfall([
function (done: any) {
- User.findOne({ passwordResetToken: req.params.token, passwordResetExpires: { $gt: Date.now() } }, function (err, user: DashUserModel) {
+ User.findOne({ passwordResetToken: req.params.token, passwordResetExpires: { $gt: Date.now() } }, function (err: any, user: DashUserModel) {
if (!user || err) {
return res.redirect('back');
}
diff --git a/src/server/authentication/Passport.ts b/src/server/authentication/Passport.ts
index 9b0069414..d7f891c34 100644
--- a/src/server/authentication/Passport.ts
+++ b/src/server/authentication/Passport.ts
@@ -4,12 +4,12 @@ import { default as User } from './DashUserModel';
const LocalStrategy = passportLocal.Strategy;
-passport.serializeUser<any, any>((user, done) => {
- done(undefined, user.id);
+passport.serializeUser<any, any>((req, user, done) => {
+ done(undefined, (user as any)?.id);
});
passport.deserializeUser<any, any>((id, done) => {
- User.findById(id, (err, user) => {
+ User.findById(id, (err: any, user: any) => {
done(err, user);
});
});
diff --git a/src/server/server_Initialization.ts b/src/server/server_Initialization.ts
index d1b9d8cf2..06c701468 100644
--- a/src/server/server_Initialization.ts
+++ b/src/server/server_Initialization.ts
@@ -92,7 +92,7 @@ function buildWithMiddleware(server: express.Express) {
passport.session(),
(req: express.Request, res: express.Response, next: express.NextFunction) => {
res.locals.user = req.user;
- if (req.originalUrl.endsWith(".png") && req.method === 'GET') {
+ if ((req.originalUrl.endsWith(".png") /*|| req.originalUrl.endsWith(".js")*/) && req.method === 'GET') {
const period = 30000;
res.set('Cache-control', `public, max-age=${period}`);
} else {