27 lines
1.2 KiB
TypeScript
27 lines
1.2 KiB
TypeScript
import _MagicLinkController from "wms-core/auth/magic_link/MagicLinkController";
|
|
import {Request, Response} from "express";
|
|
import Controller from "wms-core/Controller";
|
|
import MagicLinkWebSocketListener from "wms-core/auth/magic_link/MagicLinkWebSocketListener";
|
|
import MagicLink from "wms-core/auth/models/MagicLink";
|
|
import AuthController from "./AuthController";
|
|
import {MagicLinkActionType} from "./MagicLinkActionType";
|
|
|
|
export default class MagicLinkController extends _MagicLinkController {
|
|
constructor(magicLinkWebSocketListener: MagicLinkWebSocketListener) {
|
|
super(magicLinkWebSocketListener);
|
|
}
|
|
|
|
protected async performAction(magicLink: MagicLink, req: Request, res: Response): Promise<void> {
|
|
switch (magicLink.getActionType()) {
|
|
case MagicLinkActionType.LOGIN:
|
|
case MagicLinkActionType.REGISTER:
|
|
await AuthController.checkAndAuth(req, magicLink);
|
|
|
|
// Auth success
|
|
const user = await req.authGuard.getUserForSession(req.session!);
|
|
req.flash('success', `Authentication success. Welcome, ${user?.name}!`);
|
|
res.redirect(Controller.route('home'));
|
|
break;
|
|
}
|
|
}
|
|
} |