removed unneed modules, some more comments, made user methods async in typescript when required, and added location to popup file
This commit is contained in:
@@ -4,10 +4,8 @@ import MongoService from "../services/ChunkService/MongoService";
|
||||
import FileSystemService from "../services/ChunkService/FileSystemService";
|
||||
import S3Service from "../services/ChunkService/S3Service";
|
||||
import User, {UserInterface} from "../models/user";
|
||||
import tempStorage from "../tempStorage/tempStorage";
|
||||
import sendShareEmail from "../utils/sendShareEmail";
|
||||
import { createStreamVideoCookie, removeStreamVideoCookie } from "../cookies/createCookies";
|
||||
import { ObjectID } from "mongodb";
|
||||
|
||||
const fileService = new FileService()
|
||||
|
||||
@@ -18,11 +16,6 @@ type userAccessType = {
|
||||
s3Enabled: boolean,
|
||||
}
|
||||
|
||||
interface RequestTypeRefresh extends Request {
|
||||
user?: UserInterface,
|
||||
encryptedToken?: string
|
||||
}
|
||||
|
||||
interface RequestTypeFullUser extends Request {
|
||||
user?: UserInterface,
|
||||
encryptedToken?: string,
|
||||
@@ -366,6 +359,8 @@ class FileController {
|
||||
}
|
||||
}
|
||||
|
||||
// No longer needed, left for reference
|
||||
|
||||
// getDownloadTokenVideo = async(req: RequestTypeFullUser, res: Response) => {
|
||||
|
||||
// if (!req.user) {
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import FolderService from "../services/FolderService";
|
||||
import { Request, Response } from "express";
|
||||
import {UserInterface} from "../models/user";
|
||||
import MongoService from "../services/ChunkService/MongoService";
|
||||
import FileSystemService from "../services/ChunkService/FileSystemService";
|
||||
import S3Service from "../services/ChunkService/S3Service";
|
||||
@@ -14,16 +13,6 @@ type userAccessType = {
|
||||
s3Enabled: boolean,
|
||||
}
|
||||
|
||||
interface RequestTypeRefresh extends Request {
|
||||
user?: UserInterface,
|
||||
encryptedToken?: string
|
||||
}
|
||||
|
||||
interface RequestTypeFullUser extends Request {
|
||||
user?: UserInterface,
|
||||
encryptedToken?: string
|
||||
}
|
||||
|
||||
interface RequestType extends Request {
|
||||
user?: userAccessType,
|
||||
encryptedToken?: string
|
||||
|
||||
@@ -5,28 +5,11 @@ import { googleQueryType } from "../utils/createQueryGoogle";
|
||||
|
||||
const googleFileService = new GoogleFileService();
|
||||
|
||||
type userAccessType = {
|
||||
_id: string,
|
||||
emailVerified: boolean,
|
||||
email: string,
|
||||
s3Enabled: boolean,
|
||||
}
|
||||
|
||||
interface RequestTypeRefresh extends Request {
|
||||
user?: UserInterface,
|
||||
encryptedToken?: string
|
||||
}
|
||||
|
||||
interface RequestTypeFullUser extends Request {
|
||||
user?: UserInterface,
|
||||
encryptedToken?: string
|
||||
}
|
||||
|
||||
interface RequestType extends Request {
|
||||
user?: userAccessType,
|
||||
encryptedToken?: string
|
||||
}
|
||||
|
||||
class GoogleFileController {
|
||||
|
||||
constructor() {
|
||||
|
||||
@@ -5,28 +5,11 @@ import { googleQueryType } from "../utils/createQueryGoogle";
|
||||
|
||||
const googleFolderService = new GoogleFolderService();
|
||||
|
||||
type userAccessType = {
|
||||
_id: string,
|
||||
emailVerified: boolean,
|
||||
email: string,
|
||||
s3Enabled: boolean,
|
||||
}
|
||||
|
||||
interface RequestTypeRefresh extends Request {
|
||||
user?: UserInterface,
|
||||
encryptedToken?: string
|
||||
}
|
||||
|
||||
interface RequestTypeFullUser extends Request {
|
||||
user?: UserInterface,
|
||||
encryptedToken?: string
|
||||
}
|
||||
|
||||
interface RequestType extends Request {
|
||||
user?: userAccessType,
|
||||
encryptedToken?: string
|
||||
}
|
||||
|
||||
class GoogleFolderController {
|
||||
|
||||
constructor() {
|
||||
|
||||
@@ -9,11 +9,6 @@ type userAccessType = {
|
||||
s3Enabled: boolean,
|
||||
}
|
||||
|
||||
interface RequestTypeRefresh extends Request {
|
||||
user?: UserInterface,
|
||||
encryptedToken?: string
|
||||
}
|
||||
|
||||
interface RequestTypeFullUser extends Request {
|
||||
user?: UserInterface,
|
||||
encryptedToken?: string
|
||||
|
||||
@@ -10,16 +10,6 @@ type userAccessType = {
|
||||
s3Enabled: boolean,
|
||||
}
|
||||
|
||||
interface RequestTypeRefresh extends Request {
|
||||
user?: UserInterface,
|
||||
encryptedToken?: string
|
||||
}
|
||||
|
||||
interface RequestTypeFullUser extends Request {
|
||||
user?: UserInterface,
|
||||
encryptedToken?: string
|
||||
}
|
||||
|
||||
interface RequestType extends Request {
|
||||
user?: userAccessType,
|
||||
encryptedToken?: string
|
||||
|
||||
@@ -59,15 +59,8 @@ class UserController {
|
||||
|
||||
const {user, accessToken, refreshToken} = await UserProvider.login(body, ipAddress);
|
||||
|
||||
// await user.save();
|
||||
|
||||
createLoginCookie(res, accessToken, refreshToken);
|
||||
|
||||
// user.tokens = [];
|
||||
// user.tempTokens = []
|
||||
// user.privateKey = undefined;
|
||||
// user.publicKey = undefined;
|
||||
|
||||
res.status(200).send({user});
|
||||
|
||||
} catch (e) {
|
||||
|
||||
@@ -5,28 +5,11 @@ import { createLoginCookie } from "../cookies/createCookies";
|
||||
|
||||
const UserProviderGoogle = new UserServiceGoogle();
|
||||
|
||||
type userAccessType = {
|
||||
_id: string,
|
||||
emailVerified: boolean,
|
||||
email: string,
|
||||
s3Enabled: boolean,
|
||||
}
|
||||
|
||||
interface RequestTypeRefresh extends Request {
|
||||
user?: UserInterface,
|
||||
encryptedToken?: string
|
||||
}
|
||||
|
||||
interface RequestTypeFullUser extends Request {
|
||||
user?: UserInterface,
|
||||
encryptedToken?: string
|
||||
}
|
||||
|
||||
interface RequestType extends Request {
|
||||
user?: userAccessType,
|
||||
encryptedToken?: string
|
||||
}
|
||||
|
||||
class UserGoogleController {
|
||||
|
||||
constructor() {
|
||||
|
||||
@@ -12,11 +12,6 @@ type userAccessType = {
|
||||
s3Enabled: boolean,
|
||||
}
|
||||
|
||||
interface RequestTypeRefresh extends Request {
|
||||
user?: UserInterface,
|
||||
encryptedToken?: string
|
||||
}
|
||||
|
||||
interface RequestTypeFullUser extends Request {
|
||||
user?: UserInterface,
|
||||
encryptedToken?: string
|
||||
|
||||
@@ -78,9 +78,6 @@ class DbUtil {
|
||||
|
||||
let query: any = {"metadata.owner": new ObjectID(userID)}
|
||||
|
||||
// if (s3Enabled) {
|
||||
// query = {...query, "metadata.personalFile": true}
|
||||
// } else
|
||||
if (!s3Enabled){
|
||||
query = {...query, "metadata.personalFile": null}
|
||||
}
|
||||
|
||||
@@ -27,12 +27,6 @@ class DbUtil {
|
||||
|
||||
let query: any = {"owner": userID, "parent": parent};
|
||||
|
||||
// if (s3Enabled) {
|
||||
// query = {...query, "personalFolder": true}
|
||||
// } else if (!s3Enabled) {
|
||||
// query = {...query, "personalFolder": null}
|
||||
// }
|
||||
|
||||
if (!s3Enabled) {
|
||||
query = {...query, "personalFolder": null}
|
||||
}
|
||||
@@ -50,12 +44,6 @@ class DbUtil {
|
||||
if (itemType === "nonpersonal") query = {...query, "personalFolder": null}
|
||||
}
|
||||
|
||||
// if (storageType === "s3") {
|
||||
// query = {...query, "personalFolder": true}
|
||||
// } else {
|
||||
// query = {...query, "personalFolder": null}
|
||||
// }
|
||||
|
||||
const folderList = await Folder.find(query)
|
||||
.sort(sortBy) as FolderInterface[];
|
||||
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
import {UserInterface} from "../../../models/user";
|
||||
import env from "../../../enviroment/env";
|
||||
import { google } from "googleapis";
|
||||
import getGoogleAuth from "../../../db/googleAuth";
|
||||
import createQueryGoogle, {googleQueryType} from "../../../utils/createQueryGoogle";
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
import {UserInterface} from "../../../models/user";
|
||||
import env from "../../../enviroment/env";
|
||||
import { google } from "googleapis";
|
||||
import getGoogleAuth from "../../../db/googleAuth";
|
||||
import createQueryGoogle, {googleQueryType} from "../../../utils/createQueryGoogle";
|
||||
import {googleQueryType} from "../../../utils/createQueryGoogle";
|
||||
import createQueryGoogleFolder from "../../../utils/createQueryGoogleFolder";
|
||||
|
||||
const fields = 'id, name, createdTime, parents, mimeType'
|
||||
|
||||
@@ -49,20 +49,12 @@ router.get("/file-service/quick-list", auth, fileController.getQuickList);
|
||||
|
||||
router.get("/file-service/list", auth, fileController.getList);
|
||||
|
||||
//router.get("/file-service/download/get-token", authFullUser, fileController.getDownloadToken);
|
||||
|
||||
//router.get("/file-service/download/get-token-video", auth, fileController.getDownloadTokenVideo);
|
||||
|
||||
router.get("/file-service/download/access-token-stream-video", authFullUser, fileController.getAccessTokenStreamVideo)
|
||||
|
||||
router.get("/file-service/stream-video/:id", authStreamVideo, fileController.streamVideo);
|
||||
|
||||
router.delete("/file-service/remove-stream-video-token", authStreamVideo, fileController.removeStreamVideoAccessToken);
|
||||
|
||||
//router.get("/file-service/stream-video/:id/:tempToken/:uuid", auth, fileController.streamVideo);
|
||||
|
||||
//router.get("/file-service/stream-video/:id", auth, fileController.streamVideo);
|
||||
|
||||
router.get("/file-service/download/:id", authFullUser, fileController.downloadFile);
|
||||
|
||||
router.get("/file-service/suggested-list", auth, fileController.getSuggestedList);
|
||||
@@ -77,29 +69,18 @@ router.patch("/file-service/move", auth, fileController.moveFile);
|
||||
|
||||
router.delete("/file-service/remove-link/:id", auth, fileController.removeLink);
|
||||
|
||||
//router.delete("/file-service/remove/token-video/:tempToken/:uuid", auth, fileController.removeTempToken);
|
||||
|
||||
router.delete("/file-service/remove/token-video/:id", auth, fileController.removeTempToken);
|
||||
|
||||
router.delete("/file-service/remove", auth, fileController.deleteFile);
|
||||
|
||||
router.post("/file-service/send-share-email", auth, fileController.sendEmailShare);
|
||||
|
||||
// Moving File Accross Databases
|
||||
export default router;
|
||||
|
||||
// router.patch("/file-service/move-db", auth, async(req: RequestType, res) => {
|
||||
// NO longer needed left for reference
|
||||
|
||||
// const user = req.user!
|
||||
// const fileID = req.body.id;
|
||||
// const parentFolderID = req.body.parentID;
|
||||
|
||||
// const readStream = chunkService.getFileReadStream(user, fileID);
|
||||
|
||||
// const parentFolder = await Folder.findById(parentFolderID);
|
||||
|
||||
// if (parentFolder?.personalFolder) {
|
||||
|
||||
// }
|
||||
// })
|
||||
|
||||
export default router;
|
||||
//router.delete("/file-service/remove/token-video/:tempToken/:uuid", auth, fileController.removeTempToken);
|
||||
//router.get("/file-service/stream-video/:id/:tempToken/:uuid", auth, fileController.streamVideo);
|
||||
//router.get("/file-service/stream-video/:id", auth, fileController.streamVideo);
|
||||
//router.get("/file-service/download/get-token", authFullUser, fileController.getDownloadToken);
|
||||
//router.get("/file-service/download/get-token-video", auth, fileController.getDownloadTokenVideo);
|
||||
@@ -44,7 +44,7 @@ router.patch("/folder-service/move", auth, folderController.moveFolder);
|
||||
|
||||
router.get("/folder-service/subfolder-list-full", auth, folderController.getSubfolderFullList);
|
||||
|
||||
// Personal Files
|
||||
// Personal Folder
|
||||
|
||||
router.delete("/folder-service-personal/remove", auth, folderController.deletePersonalFolder);
|
||||
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
import {Router} from "express";
|
||||
import auth from "../middleware/auth";
|
||||
import GoogleFileController from "../controllers/googleFile";
|
||||
import authFullUser from "../middleware/authFullUser";
|
||||
import authStreamVideo from "../middleware/authStreamVideo";
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
import {Router} from "express";
|
||||
import auth from "../middleware/auth";
|
||||
import GoogleFolderController from "../controllers/googleFolder";
|
||||
import authFullUser from "../middleware/authFullUser";
|
||||
|
||||
|
||||
@@ -6,6 +6,8 @@ const storageController = new StorageController();
|
||||
|
||||
const router = Router();
|
||||
|
||||
// No longer needed left for reference
|
||||
|
||||
// router.get("/storage-service/info", auth, storageController.getStorageInfo);
|
||||
|
||||
export default router;
|
||||
@@ -1,5 +1,4 @@
|
||||
import { Router } from "express";
|
||||
import auth from "../middleware/auth";
|
||||
import UserGoogleController from "../controllers/userGoogle";
|
||||
import authFullUser from "../middleware/authFullUser";
|
||||
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
const prompt = require('password-prompt')
|
||||
import env from "../enviroment/env";
|
||||
import crypto from "crypto";
|
||||
import getWebUIKey from "./getWebUIKey";
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
import jwt from "jsonwebtoken";
|
||||
import User, {UserInterface} from "../models/user";
|
||||
import env from "../enviroment/env";
|
||||
import {Request, Response, NextFunction} from "express";
|
||||
|
||||
@@ -27,8 +26,6 @@ const auth = async(req: RequestType, res: Response, next: NextFunction) => {
|
||||
|
||||
try {
|
||||
|
||||
//console.log("\nAUTH RUOTE")
|
||||
|
||||
const accessToken = req.cookies["access-token"];
|
||||
|
||||
if (!accessToken) throw new Error("No Access Token");
|
||||
@@ -37,8 +34,6 @@ const auth = async(req: RequestType, res: Response, next: NextFunction) => {
|
||||
|
||||
const user = decoded.user;
|
||||
|
||||
//console.log(user.email);
|
||||
|
||||
if (!user) throw new Error("No User");
|
||||
if (!user.emailVerified && !env.disableEmailVerification) throw new Error("Email Not Verified")
|
||||
|
||||
@@ -57,151 +52,3 @@ const auth = async(req: RequestType, res: Response, next: NextFunction) => {
|
||||
}
|
||||
|
||||
export default auth;
|
||||
|
||||
|
||||
// import jwt from "jsonwebtoken";
|
||||
// import User, {UserInterface} from "../models/user";
|
||||
// import env from "../enviroment/env";
|
||||
// import {Request, Response, NextFunction} from "express";
|
||||
|
||||
// interface RequestType extends Request {
|
||||
// user?: UserInterface,
|
||||
// token?: string,
|
||||
// encryptedToken?: string,
|
||||
// }
|
||||
|
||||
// type jwtType = {
|
||||
// iv: Buffer,
|
||||
// _id: string,
|
||||
// }
|
||||
|
||||
// const auth = async(req: RequestType, res: Response, next: NextFunction) => {
|
||||
|
||||
// try {
|
||||
|
||||
// const token = req.header("Authorization")!.replace("Bearer ", "");
|
||||
|
||||
// const decoded = jwt.verify(token, env.passwordAccess!) as jwtType;
|
||||
|
||||
// const iv = decoded.iv;
|
||||
|
||||
// const user = await User.findOne({_id: decoded._id}) as UserInterface;
|
||||
// const encrpytionKey = user.getEncryptionKey();
|
||||
|
||||
// const encryptedToken = user.encryptToken(token, encrpytionKey, iv);
|
||||
|
||||
// let tokenFound = false;
|
||||
// for (let i = 0; i < user.tokens.length; i++) {
|
||||
|
||||
// const currentToken = user.tokens[i].token;
|
||||
|
||||
// //console.log("current token", currentToken === encryptedToken)
|
||||
// if (currentToken === encryptedToken) {
|
||||
// tokenFound = true;
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
|
||||
// if (!user || !tokenFound) {
|
||||
|
||||
// throw new Error("User not found")
|
||||
|
||||
// } else if (user.emailVerified && user.botChecked) {
|
||||
|
||||
// // TEMPORARY CHANGE THIS
|
||||
|
||||
// req.token = token;
|
||||
// req.encryptedToken = encryptedToken
|
||||
// req.user = user;
|
||||
// next();
|
||||
// } else {
|
||||
// throw new Error("Email Not Verified, or Bot not checked")
|
||||
// }
|
||||
|
||||
// } catch (e) {
|
||||
// console.log(e);
|
||||
// res.status(401).send({error: "Error Authenticating"})
|
||||
// }
|
||||
// }
|
||||
|
||||
// export default auth;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// import jwt from "jsonwebtoken";
|
||||
// import User, {UserInterface} from "../models/user";
|
||||
// import env from "../enviroment/env";
|
||||
// import {Request, Response, NextFunction} from "express";
|
||||
|
||||
// interface RequestType extends Request {
|
||||
// user?: UserInterface,
|
||||
// token?: string,
|
||||
// encryptedToken?: string,
|
||||
// }
|
||||
|
||||
// type jwtType = {
|
||||
// iv: Buffer,
|
||||
// _id: string,
|
||||
// }
|
||||
|
||||
// const auth = async(req: RequestType, res: Response, next: NextFunction) => {
|
||||
|
||||
// try {
|
||||
|
||||
// const token = req.header("Authorization")!.replace("Bearer ", "");
|
||||
|
||||
// const decoded = jwt.verify(token, env.passwordAccess!) as jwtType;
|
||||
|
||||
// const iv = decoded.iv;
|
||||
|
||||
// const user = await User.findOne({_id: decoded._id}) as UserInterface;
|
||||
// const encrpytionKey = user.getEncryptionKey();
|
||||
|
||||
// const encryptedToken = user.encryptToken(token, encrpytionKey, iv);
|
||||
|
||||
// let tokenFound = false;
|
||||
// for (let i = 0; i < user.tokens.length; i++) {
|
||||
|
||||
// const currentToken = user.tokens[i].token;
|
||||
|
||||
// //console.log("current token", currentToken === encryptedToken)
|
||||
// if (currentToken === encryptedToken) {
|
||||
// tokenFound = true;
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
|
||||
// if (!user || !tokenFound) {
|
||||
|
||||
// throw new Error("User not found")
|
||||
|
||||
// } else if (user.emailVerified) {
|
||||
|
||||
// req.token = token;
|
||||
// req.encryptedToken = encryptedToken
|
||||
// req.user = user;
|
||||
// next();
|
||||
// } else {
|
||||
// throw new Error("Email Not Verified")
|
||||
// }
|
||||
|
||||
// } catch (e) {
|
||||
// console.log(e);
|
||||
// res.status(401).send({error: "Error Authenticating"})
|
||||
// }
|
||||
// }
|
||||
|
||||
// export default auth;
|
||||
@@ -56,152 +56,4 @@ const authFullUser = async(req: RequestType, res: Response, next: NextFunction)
|
||||
}
|
||||
}
|
||||
|
||||
export default authFullUser;
|
||||
|
||||
|
||||
// import jwt from "jsonwebtoken";
|
||||
// import User, {UserInterface} from "../models/user";
|
||||
// import env from "../enviroment/env";
|
||||
// import {Request, Response, NextFunction} from "express";
|
||||
|
||||
// interface RequestType extends Request {
|
||||
// user?: UserInterface,
|
||||
// token?: string,
|
||||
// encryptedToken?: string,
|
||||
// }
|
||||
|
||||
// type jwtType = {
|
||||
// iv: Buffer,
|
||||
// _id: string,
|
||||
// }
|
||||
|
||||
// const auth = async(req: RequestType, res: Response, next: NextFunction) => {
|
||||
|
||||
// try {
|
||||
|
||||
// const token = req.header("Authorization")!.replace("Bearer ", "");
|
||||
|
||||
// const decoded = jwt.verify(token, env.passwordAccess!) as jwtType;
|
||||
|
||||
// const iv = decoded.iv;
|
||||
|
||||
// const user = await User.findOne({_id: decoded._id}) as UserInterface;
|
||||
// const encrpytionKey = user.getEncryptionKey();
|
||||
|
||||
// const encryptedToken = user.encryptToken(token, encrpytionKey, iv);
|
||||
|
||||
// let tokenFound = false;
|
||||
// for (let i = 0; i < user.tokens.length; i++) {
|
||||
|
||||
// const currentToken = user.tokens[i].token;
|
||||
|
||||
// //console.log("current token", currentToken === encryptedToken)
|
||||
// if (currentToken === encryptedToken) {
|
||||
// tokenFound = true;
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
|
||||
// if (!user || !tokenFound) {
|
||||
|
||||
// throw new Error("User not found")
|
||||
|
||||
// } else if (user.emailVerified && user.botChecked) {
|
||||
|
||||
// // TEMPORARY CHANGE THIS
|
||||
|
||||
// req.token = token;
|
||||
// req.encryptedToken = encryptedToken
|
||||
// req.user = user;
|
||||
// next();
|
||||
// } else {
|
||||
// throw new Error("Email Not Verified, or Bot not checked")
|
||||
// }
|
||||
|
||||
// } catch (e) {
|
||||
// console.log(e);
|
||||
// res.status(401).send({error: "Error Authenticating"})
|
||||
// }
|
||||
// }
|
||||
|
||||
// export default auth;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// import jwt from "jsonwebtoken";
|
||||
// import User, {UserInterface} from "../models/user";
|
||||
// import env from "../enviroment/env";
|
||||
// import {Request, Response, NextFunction} from "express";
|
||||
|
||||
// interface RequestType extends Request {
|
||||
// user?: UserInterface,
|
||||
// token?: string,
|
||||
// encryptedToken?: string,
|
||||
// }
|
||||
|
||||
// type jwtType = {
|
||||
// iv: Buffer,
|
||||
// _id: string,
|
||||
// }
|
||||
|
||||
// const auth = async(req: RequestType, res: Response, next: NextFunction) => {
|
||||
|
||||
// try {
|
||||
|
||||
// const token = req.header("Authorization")!.replace("Bearer ", "");
|
||||
|
||||
// const decoded = jwt.verify(token, env.passwordAccess!) as jwtType;
|
||||
|
||||
// const iv = decoded.iv;
|
||||
|
||||
// const user = await User.findOne({_id: decoded._id}) as UserInterface;
|
||||
// const encrpytionKey = user.getEncryptionKey();
|
||||
|
||||
// const encryptedToken = user.encryptToken(token, encrpytionKey, iv);
|
||||
|
||||
// let tokenFound = false;
|
||||
// for (let i = 0; i < user.tokens.length; i++) {
|
||||
|
||||
// const currentToken = user.tokens[i].token;
|
||||
|
||||
// //console.log("current token", currentToken === encryptedToken)
|
||||
// if (currentToken === encryptedToken) {
|
||||
// tokenFound = true;
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
|
||||
// if (!user || !tokenFound) {
|
||||
|
||||
// throw new Error("User not found")
|
||||
|
||||
// } else if (user.emailVerified) {
|
||||
|
||||
// req.token = token;
|
||||
// req.encryptedToken = encryptedToken
|
||||
// req.user = user;
|
||||
// next();
|
||||
// } else {
|
||||
// throw new Error("Email Not Verified")
|
||||
// }
|
||||
|
||||
// } catch (e) {
|
||||
// console.log(e);
|
||||
// res.status(401).send({error: "Error Authenticating"})
|
||||
// }
|
||||
// }
|
||||
|
||||
// export default auth;
|
||||
export default authFullUser;
|
||||
@@ -1,5 +1,4 @@
|
||||
import jwt from "jsonwebtoken";
|
||||
import User, {UserInterface} from "../models/user";
|
||||
import env from "../enviroment/env";
|
||||
import {Request, Response, NextFunction} from "express";
|
||||
import { createLogoutCookie } from "../cookies/createCookies";
|
||||
@@ -50,132 +49,4 @@ const auth = async(req: RequestType, res: Response, next: NextFunction) => {
|
||||
}
|
||||
}
|
||||
|
||||
export default auth;
|
||||
|
||||
|
||||
// import jwt from "jsonwebtoken";
|
||||
// import User, {UserInterface} from "../models/user";
|
||||
// import env from "../enviroment/env";
|
||||
// import {Request, Response, NextFunction} from "express";
|
||||
|
||||
// interface RequestType extends Request {
|
||||
// user?: UserInterface,
|
||||
// token?: string,
|
||||
// encryptedToken?: string,
|
||||
// }
|
||||
|
||||
// type jwtType = {
|
||||
// iv: Buffer,
|
||||
// _id: string,
|
||||
// }
|
||||
|
||||
// const auth = async(req: RequestType, res: Response, next: NextFunction) => {
|
||||
|
||||
// try {
|
||||
|
||||
// const token = req.header("Authorization")!.replace("Bearer ", "");
|
||||
|
||||
// const decoded = jwt.verify(token, env.passwordAccess!) as jwtType;
|
||||
|
||||
// const iv = decoded.iv;
|
||||
|
||||
// const user = await User.findOne({_id: decoded._id}) as UserInterface;
|
||||
// const encrpytionKey = user.getEncryptionKey();
|
||||
|
||||
// const encryptedToken = user.encryptToken(token, encrpytionKey, iv);
|
||||
|
||||
// let tokenFound = false;
|
||||
// for (let i = 0; i < user.tokens.length; i++) {
|
||||
|
||||
// const currentToken = user.tokens[i].token;
|
||||
|
||||
// if (currentToken === encryptedToken) {
|
||||
// tokenFound = true;
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
|
||||
// if (!user || !tokenFound) {
|
||||
|
||||
// throw new Error("User not found")
|
||||
|
||||
// } else {
|
||||
// req.token = token;
|
||||
// req.encryptedToken = encryptedToken
|
||||
// req.user = user;
|
||||
// next();
|
||||
// }
|
||||
|
||||
// } catch (e) {
|
||||
// console.log(e);
|
||||
// res.status(401).send({error: "Error Authenticating"})
|
||||
// }
|
||||
// }
|
||||
|
||||
// export default auth;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// import jwt from "jsonwebtoken";
|
||||
// import User, {UserInterface} from "../models/user";
|
||||
// import env from "../enviroment/env";
|
||||
// import {Request, Response, NextFunction} from "express";
|
||||
|
||||
// interface RequestType extends Request {
|
||||
// user?: UserInterface,
|
||||
// token?: string,
|
||||
// encryptedToken?: string,
|
||||
// }
|
||||
|
||||
// type jwtType = {
|
||||
// iv: Buffer,
|
||||
// _id: string,
|
||||
// }
|
||||
|
||||
// const auth = async(req: RequestType, res: Response, next: NextFunction) => {
|
||||
|
||||
// try {
|
||||
|
||||
// const token = req.header("Authorization")!.replace("Bearer ", "");
|
||||
|
||||
// const decoded = jwt.verify(token, env.passwordAccess!) as jwtType;
|
||||
|
||||
// const iv = decoded.iv;
|
||||
|
||||
// const user = await User.findOne({_id: decoded._id}) as UserInterface;
|
||||
// const encrpytionKey = user.getEncryptionKey();
|
||||
|
||||
// const encryptedToken = user.encryptToken(token, encrpytionKey, iv);
|
||||
|
||||
// let tokenFound = false;
|
||||
// for (let i = 0; i < user.tokens.length; i++) {
|
||||
|
||||
// const currentToken = user.tokens[i].token;
|
||||
|
||||
// if (currentToken === encryptedToken) {
|
||||
// tokenFound = true;
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
|
||||
// if (!user || !tokenFound) {
|
||||
|
||||
// throw new Error("User not found")
|
||||
|
||||
// } else {
|
||||
// req.token = token;
|
||||
// req.encryptedToken = encryptedToken
|
||||
// req.user = user;
|
||||
// next();
|
||||
// }
|
||||
|
||||
// } catch (e) {
|
||||
// console.log(e);
|
||||
// res.status(401).send({error: "Error Authenticating"})
|
||||
// }
|
||||
// }
|
||||
|
||||
// export default auth;
|
||||
export default auth;
|
||||
@@ -54,132 +54,4 @@ const auth = async(req: RequestType, res: Response, next: NextFunction) => {
|
||||
}
|
||||
}
|
||||
|
||||
export default auth;
|
||||
|
||||
|
||||
// import jwt from "jsonwebtoken";
|
||||
// import User, {UserInterface} from "../models/user";
|
||||
// import env from "../enviroment/env";
|
||||
// import {Request, Response, NextFunction} from "express";
|
||||
|
||||
// interface RequestType extends Request {
|
||||
// user?: UserInterface,
|
||||
// token?: string,
|
||||
// encryptedToken?: string,
|
||||
// }
|
||||
|
||||
// type jwtType = {
|
||||
// iv: Buffer,
|
||||
// _id: string,
|
||||
// }
|
||||
|
||||
// const auth = async(req: RequestType, res: Response, next: NextFunction) => {
|
||||
|
||||
// try {
|
||||
|
||||
// const token = req.header("Authorization")!.replace("Bearer ", "");
|
||||
|
||||
// const decoded = jwt.verify(token, env.passwordAccess!) as jwtType;
|
||||
|
||||
// const iv = decoded.iv;
|
||||
|
||||
// const user = await User.findOne({_id: decoded._id}) as UserInterface;
|
||||
// const encrpytionKey = user.getEncryptionKey();
|
||||
|
||||
// const encryptedToken = user.encryptToken(token, encrpytionKey, iv);
|
||||
|
||||
// let tokenFound = false;
|
||||
// for (let i = 0; i < user.tokens.length; i++) {
|
||||
|
||||
// const currentToken = user.tokens[i].token;
|
||||
|
||||
// if (currentToken === encryptedToken) {
|
||||
// tokenFound = true;
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
|
||||
// if (!user || !tokenFound) {
|
||||
|
||||
// throw new Error("User not found")
|
||||
|
||||
// } else {
|
||||
// req.token = token;
|
||||
// req.encryptedToken = encryptedToken
|
||||
// req.user = user;
|
||||
// next();
|
||||
// }
|
||||
|
||||
// } catch (e) {
|
||||
// console.log(e);
|
||||
// res.status(401).send({error: "Error Authenticating"})
|
||||
// }
|
||||
// }
|
||||
|
||||
// export default auth;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// import jwt from "jsonwebtoken";
|
||||
// import User, {UserInterface} from "../models/user";
|
||||
// import env from "../enviroment/env";
|
||||
// import {Request, Response, NextFunction} from "express";
|
||||
|
||||
// interface RequestType extends Request {
|
||||
// user?: UserInterface,
|
||||
// token?: string,
|
||||
// encryptedToken?: string,
|
||||
// }
|
||||
|
||||
// type jwtType = {
|
||||
// iv: Buffer,
|
||||
// _id: string,
|
||||
// }
|
||||
|
||||
// const auth = async(req: RequestType, res: Response, next: NextFunction) => {
|
||||
|
||||
// try {
|
||||
|
||||
// const token = req.header("Authorization")!.replace("Bearer ", "");
|
||||
|
||||
// const decoded = jwt.verify(token, env.passwordAccess!) as jwtType;
|
||||
|
||||
// const iv = decoded.iv;
|
||||
|
||||
// const user = await User.findOne({_id: decoded._id}) as UserInterface;
|
||||
// const encrpytionKey = user.getEncryptionKey();
|
||||
|
||||
// const encryptedToken = user.encryptToken(token, encrpytionKey, iv);
|
||||
|
||||
// let tokenFound = false;
|
||||
// for (let i = 0; i < user.tokens.length; i++) {
|
||||
|
||||
// const currentToken = user.tokens[i].token;
|
||||
|
||||
// if (currentToken === encryptedToken) {
|
||||
// tokenFound = true;
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
|
||||
// if (!user || !tokenFound) {
|
||||
|
||||
// throw new Error("User not found")
|
||||
|
||||
// } else {
|
||||
// req.token = token;
|
||||
// req.encryptedToken = encryptedToken
|
||||
// req.user = user;
|
||||
// next();
|
||||
// }
|
||||
|
||||
// } catch (e) {
|
||||
// console.log(e);
|
||||
// res.status(401).send({error: "Error Authenticating"})
|
||||
// }
|
||||
// }
|
||||
|
||||
// export default auth;
|
||||
export default auth;
|
||||
@@ -11,26 +11,12 @@ interface RequestType extends Request {
|
||||
accessTokenStreamVideo?: string
|
||||
}
|
||||
|
||||
// type jwtType = {
|
||||
// iv: Buffer,
|
||||
// user: userAccessType
|
||||
// }
|
||||
|
||||
type jwtType = {
|
||||
iv: Buffer,
|
||||
_id: string,
|
||||
time: number
|
||||
}
|
||||
|
||||
type userAccessType = {
|
||||
_id: string,
|
||||
emailVerified: boolean,
|
||||
email: string,
|
||||
admin: boolean,
|
||||
botChecked: boolean,
|
||||
username: string,
|
||||
}
|
||||
|
||||
const removeOldTokens = async(userID: string, ipAddress: string | undefined, oldTime: number) => {
|
||||
|
||||
try {
|
||||
|
||||
+10
-31
@@ -93,18 +93,6 @@ const userSchema = new mongoose.Schema({
|
||||
token: {
|
||||
type: String
|
||||
}
|
||||
// accessToken: {
|
||||
// type: String
|
||||
// },
|
||||
// refreshToken: {
|
||||
// type: String
|
||||
// },
|
||||
// tokenType: {
|
||||
// type: String
|
||||
// },
|
||||
// expiryDate: {
|
||||
// type: String
|
||||
// }
|
||||
},
|
||||
s3Enabled: {
|
||||
type: Boolean
|
||||
@@ -165,10 +153,6 @@ export interface UserInterface extends Document {
|
||||
id?: string,
|
||||
key?: string,
|
||||
iv?: Buffer,
|
||||
// accessToken?: string,
|
||||
// refreshToken?: string,
|
||||
// tokenType?: string,
|
||||
// expiryDate?: string,
|
||||
token?: string,
|
||||
},
|
||||
s3Enabled?: boolean,
|
||||
@@ -200,27 +184,22 @@ export interface UserInterface extends Document {
|
||||
lastSubscriptionStatus?: boolean,
|
||||
|
||||
getEncryptionKey: () => Buffer | undefined;
|
||||
generateTempAuthToken: () => any;
|
||||
// generateTempAuthTokenVideo: (cookie: string) => any;
|
||||
generateTempAuthToken: () => Promise<any>;
|
||||
encryptToken: (tempToken: any, key: any, publicKey: any) => any;
|
||||
decryptToken: (encryptedToken: any, key: any, publicKey: any) => any;
|
||||
findByCreds: (email: string, password: string) => UserInterface;
|
||||
findByCreds: (email: string, password: string) => Promise<UserInterface>;
|
||||
generateAuthToken: (ipAddress: string | undefined) => Promise<{accessToken: string, refreshToken: string}>
|
||||
generateAuthTokenStreamVideo: (ipAddress: string | undefined) => Promise<string>
|
||||
generateEncryptionKeys: () => Promise<void>;
|
||||
changeEncryptionKey: (randomKey: Buffer) => void;
|
||||
generateEmailVerifyToken: () => string;
|
||||
generatePasswordResetToken: () => string;
|
||||
changeEncryptionKey: (randomKey: Buffer) => Promise<void>;
|
||||
generateEmailVerifyToken: () => Promise<string>;
|
||||
generatePasswordResetToken: () => Promise<string>;
|
||||
encryptDriveIDandKey: (ID:string, key: string) => Promise<void>;
|
||||
decryptDriveIDandKey: () => {clientID: string, clientKey: string};
|
||||
encryptDriveTokenData: (token: Object) => void;
|
||||
decryptDriveTokenData: () => any;
|
||||
encryptS3Data: (id: string, key: string, bucket: string) => void;
|
||||
decryptS3Data: () => {
|
||||
id: string,
|
||||
key: string,
|
||||
bucket: string
|
||||
}
|
||||
decryptDriveIDandKey: () => Promise<{clientID: string, clientKey: string}>;
|
||||
encryptDriveTokenData: (token: Object) => Promise<void>;
|
||||
decryptDriveTokenData: () => Promise<any>;
|
||||
encryptS3Data: (id: string, key: string, bucket: string) => Promise<void>;
|
||||
decryptS3Data: () => Promise<{id: string, key: string, bucket: string}>
|
||||
}
|
||||
|
||||
const maxAgeAccess = 60 * 1000 * 20 + (1000 * 60);
|
||||
|
||||
@@ -14,7 +14,6 @@ import getFileSize from "./utils/getFileSize";
|
||||
import DbUtilFile from "../../db/utils/fileUtils/index";
|
||||
import awaitStream from "./utils/awaitStream";
|
||||
import createThumbnailAny from "./utils/createThumbailAny";
|
||||
import createThumbnailFS from "./utils/createThumbnailFS";
|
||||
import imageChecker from "../../utils/imageChecker";
|
||||
import Thumbnail, {ThumbnailInterface} from "../../models/thumbnail";
|
||||
import streamToBuffer from "../../utils/streamToBuffer";
|
||||
@@ -29,7 +28,6 @@ import addToStoageSize from "./utils/addToStorageSize";
|
||||
import subtractFromStorageSize from "./utils/subtractFromStorageSize";
|
||||
import ForbiddenError from "../../utils/ForbiddenError";
|
||||
import { ObjectID } from "mongodb";
|
||||
const StreamSkip = require("stream-skip");
|
||||
|
||||
const dbUtilsFile = new DbUtilFile();
|
||||
|
||||
|
||||
@@ -161,9 +161,7 @@ class MongoFileService {
|
||||
return tempToken;
|
||||
}
|
||||
|
||||
getAccessTokenStreamVideo = async() => {
|
||||
|
||||
}
|
||||
// No longer needed left for reference
|
||||
|
||||
// getDownloadTokenVideo = async(user: UserInterface, cookie: string) => {
|
||||
|
||||
|
||||
@@ -184,8 +184,6 @@ class FolderService {
|
||||
currentID = currentFolder.parent;
|
||||
}
|
||||
|
||||
// console.log("SENDING FOLDER LIST FULL MONGO", folderList)
|
||||
|
||||
return folderList;
|
||||
}
|
||||
|
||||
|
||||
@@ -2,7 +2,6 @@ import { UserInterface } from "../../models/user";
|
||||
import getGoogleAuth from "../../db/googleAuth";
|
||||
import {google} from "googleapis";
|
||||
import convertDriveListToMongoList from "../../utils/convertDriveListToMongoList";
|
||||
import createQueryGoogle from "../../utils/createQueryGoogle";
|
||||
import FileService from "../FileService";
|
||||
import sortGoogleMongoList from "../../utils/sortGoogleMongoList";
|
||||
import convertDriveToMongo from "../../utils/convertDriveToMongo";
|
||||
|
||||
@@ -2,11 +2,10 @@ import { UserInterface } from "../../models/user";
|
||||
import getGoogleAuth from "../../db/googleAuth";
|
||||
import {google} from "googleapis";
|
||||
import convertDriveFoldersToMongoFolders from "../../utils/convertDriveFoldersToMongoFolders";
|
||||
import createQueryGoogleFolder from "../../utils/createQueryGoogleFolder";
|
||||
import FolderService from "../FolderService";
|
||||
import sortGoogleMongoFolderList from "../../utils/sortGoogleMongoFolderList";
|
||||
import convertDriveFolderToMongoFolder from "../../utils/convertDriveFolderToMongoFolder";
|
||||
import createQueryGoogle, {googleQueryType} from "../../utils/createQueryGoogle";
|
||||
import {googleQueryType} from "../../utils/createQueryGoogle";
|
||||
import GoogleDbFolderUtils from "../../db/utils/googleFolderUtils";
|
||||
|
||||
const googleDbFolderUtils = new GoogleDbFolderUtils();
|
||||
|
||||
@@ -2,7 +2,6 @@ import User, {UserInterface} from "../../models/user";
|
||||
import bcrypt from "bcrypt";
|
||||
import NotFoundError from "../../utils/NotFoundError";
|
||||
import InternalServerError from "../../utils/InternalServerError";
|
||||
import NotAuthorizedError from "../../utils/NotAuthorizedError";
|
||||
import sendEmailVerification from "../../utils/sendVerificationEmail";
|
||||
import File from "../../models/file";
|
||||
import env from "../../enviroment/env";
|
||||
@@ -48,7 +47,6 @@ class UserService {
|
||||
const {accessToken, refreshToken} = await user.generateAuthToken(ipAddress);
|
||||
|
||||
if (!accessToken || !refreshToken) throw new NotFoundError("Login User Not Found Error");
|
||||
//if (!user.emailVerified) throw new NotEmailVertifiedError("Email Address Not Verified")
|
||||
|
||||
return {user, accessToken, refreshToken}
|
||||
}
|
||||
@@ -78,12 +76,6 @@ class UserService {
|
||||
}
|
||||
|
||||
await user.save();
|
||||
|
||||
// user.tokens = user.tokens.filter((token) => {
|
||||
// return token.token !== userToken;
|
||||
// })
|
||||
|
||||
// await user.save();
|
||||
}
|
||||
|
||||
logoutAll = async(userID: string) => {
|
||||
@@ -96,11 +88,6 @@ class UserService {
|
||||
user.tempTokens = [];
|
||||
|
||||
await user.save();
|
||||
|
||||
// user.tokens = []
|
||||
// user.tempTokens = [];
|
||||
|
||||
// await user.save();
|
||||
}
|
||||
|
||||
create = async(userData: any, ipAddress: string | undefined) => {
|
||||
@@ -141,25 +128,6 @@ class UserService {
|
||||
user.tokens = [];
|
||||
user.tempTokens = [];
|
||||
user.passwordLastModified = date.getTime();
|
||||
|
||||
// if (oldRefreshToken) {
|
||||
// const decoded = jwt.verify(oldRefreshToken, env.passwordRefresh!) as jwtType;
|
||||
// const encrpytionKey = user.getEncryptionKey();
|
||||
// const encryptedToken = user.encryptToken(oldRefreshToken, encrpytionKey, decoded.iv);
|
||||
|
||||
// for (let i = 0; i < user.tokens.length; i++) {
|
||||
|
||||
// const currentEncryptedToken = user.tokens[i].token;
|
||||
|
||||
// if (currentEncryptedToken === encryptedToken) {
|
||||
|
||||
// console.log("Refresh Token Found Logout!");
|
||||
// user.tokens.splice(i, 1);
|
||||
// await user.save();
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
await user.save();
|
||||
await user.changeEncryptionKey(encryptionKey!);
|
||||
@@ -167,27 +135,6 @@ class UserService {
|
||||
const {accessToken, refreshToken} = await user.generateAuthToken(ipAddress);
|
||||
|
||||
return {accessToken, refreshToken};
|
||||
|
||||
// const date = new Date();
|
||||
|
||||
// const isMatch = await bcrypt.compare(oldPassword, user.password);
|
||||
|
||||
// if (!isMatch) throw new NotAuthorizedError("Change Passwords Do Not Match Error");
|
||||
|
||||
// const encryptionKey = user.getEncryptionKey();
|
||||
|
||||
// user.password = newPassword;
|
||||
|
||||
// user.tokens = [];
|
||||
// user.tempTokens = [];
|
||||
// user.passwordLastModified = date.getTime();
|
||||
|
||||
// await user.save();
|
||||
// await user.changeEncryptionKey(encryptionKey!);
|
||||
|
||||
// const newToken = await user.generateAuthToken();
|
||||
|
||||
// return newToken;
|
||||
}
|
||||
|
||||
refreshStorageSize = async(userID: string) => {
|
||||
|
||||
@@ -42,6 +42,7 @@ class PopupWindow extends React.Component {
|
||||
</video>}
|
||||
<div>
|
||||
<div>
|
||||
<p className="popup-file-details-title">Location: {this.props.popupFile.metadata.drive ? "Google Drive" : this.props.popupFile.metadata.personalFile ? "Amazon S3" : "myDrive"}</p>
|
||||
<p className="popup-file-details-title">File Size: {bytes(+this.props.popupFile.metadata.size)}</p>
|
||||
<p className="popup-file-details-title">Created: {moment(this.props.popupFile.uploadDate).format("L")}</p>
|
||||
<div className="popup-window-button-wrapper">
|
||||
|
||||
Reference in New Issue
Block a user