diff options
Diffstat (limited to 'src/server')
| -rw-r--r-- | src/server/ApiManagers/PDFManager.ts | 5 | ||||
| -rw-r--r-- | src/server/ApiManagers/UploadManager.ts | 20 | ||||
| -rw-r--r-- | src/server/DashUploadUtils.ts | 7 | ||||
| -rw-r--r-- | src/server/RouteManager.ts | 2 | ||||
| -rw-r--r-- | src/server/authentication/AuthenticationManager.ts | 15 | ||||
| -rw-r--r-- | src/server/authentication/Passport.ts | 6 | ||||
| -rw-r--r-- | src/server/server_Initialization.ts | 2 |
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 { |
