icynet-auth-server/src/middleware/user.middleware.ts

26 lines
812 B
TypeScript

import { Injectable, NestMiddleware } from '@nestjs/common';
import { NextFunction, Request, Response } from 'express';
import { UserService } from 'src/modules/objects/user/user.service';
@Injectable()
export class UserMiddleware implements NestMiddleware {
constructor(private readonly userService: UserService) {}
async use(req: Request, res: Response, next: NextFunction) {
if (req.session.user) {
// TODO: Cache user requests
// Might not be a big deal though, there is no expected volume in visitors
// TODO: check for bans
const userObj = await this.userService.getByUUID(req.session.user, [
'picture',
]);
if (userObj && userObj.activated) {
req.user = userObj;
} else {
delete req.session.user;
}
}
next();
}
}