diff --git a/src/controllers/IndexController.ts b/src/controllers/IndexController.ts index 668cb0d8..139b86d2 100644 --- a/src/controllers/IndexController.ts +++ b/src/controllers/IndexController.ts @@ -34,6 +34,7 @@ export class IndexController { @Get('logout') private async logout(req: Request, res: Response) { + Logger.get('TypeX.Auth').info(`User ${req.session.user?.username} (${req.session.user?.id}) logged out`) req.session.user = null; res.clearCookie('typex_user'); res.redirect('/login'); @@ -52,6 +53,7 @@ export class IndexController { administrator: true } res.cookie('typex_user', req.session.user.id, { maxAge: 1036800000 }); + Logger.get('TypeX.Auth').info(`Administrator has logged in from IP ${req.headers['x-forwarded-for'] || req.connection.remoteAddress}`) return res.redirect('/') } const user = await this.orm.repos.user.findOne({ where: { username: req.body.username } }); diff --git a/src/index.ts b/src/index.ts index e269561e..64bcbef2 100644 --- a/src/index.ts +++ b/src/index.ts @@ -19,6 +19,12 @@ if (!findFile('config.json', process.cwd())) { const config = JSON.parse(readFileSync(findFile('config.json', process.cwd()), 'utf8')) +if (!config.upload?.route) { + Logger.get('TypeX.Config').error(`Missing needed property on configuration: upload.route`) + process.exit(1); +} else if (!config.forever?.route) { + Logger.get('TypeX.Config').error(`Missing needed property on configuration: forever.route`) +} export interface ORMRepos { user?: Repository; diff --git a/src/middleware/cookies.ts b/src/middleware/cookies.ts index ece96737..44213bbe 100644 --- a/src/middleware/cookies.ts +++ b/src/middleware/cookies.ts @@ -10,7 +10,6 @@ export async function cookies(req: Request, res: Response, next: any) { id: 0, username: 'administrator', password: config.administrator.password, - token: config.administrator.authorization, administrator: true } else req.session.user = await getConnection().getRepository(User).findOne({ id: req.cookies.typex_user }); diff --git a/src/middleware/cookiesForAPI.ts b/src/middleware/cookiesForAPI.ts index 2babf30c..97dc82fa 100644 --- a/src/middleware/cookiesForAPI.ts +++ b/src/middleware/cookiesForAPI.ts @@ -11,7 +11,6 @@ export async function cookiesForAPI(req: Request, res: Response, next: any) { id: 0, username: 'administrator', password: config.administrator.password, - token: config.administrator.authorization, administrator: true } else req.session.user = await getConnection().getRepository(User).findOne({ id: req.cookies.typex_user }); diff --git a/src/server.ts b/src/server.ts index 41cb411a..dcc38301 100644 --- a/src/server.ts +++ b/src/server.ts @@ -32,8 +32,13 @@ export class TypeXServer extends Server { }) ); this.app.use(cookies()); - this.app.use(config.upload.route, express.static(config.upload.uploadDir)); - this.app.use(config.forever.route, express.static(config.forever.directory)); + try { + this.app.use(config.upload.route, express.static(config.upload.uploadDir)); + this.app.use(config.forever.route, express.static(config.forever.directory)); + } catch (e) { + Logger.get('TypeX.Routes').error(`Could not formulate upload and forever static routes`) + process.exit(1); + } this.app.use("/public", express.static("public")); this.app.use(bodyParser.json()); this.app.use(bodyParser.urlencoded({ extended: true }));