.
This commit is contained in:
parent
e41dde5c07
commit
130ca11aea
@ -25,7 +25,8 @@ export class IdentityController extends ExpressController {
|
||||
|
||||
async executeImpl() {
|
||||
try {
|
||||
const user = <AuthUser>this.req?.user;
|
||||
const req = this.req as Express.AuthenticatedRequest;
|
||||
const user = <AuthUser>req.user;
|
||||
|
||||
if (!user) {
|
||||
const errorMessage = "Unexpected missing user data";
|
||||
|
||||
@ -27,7 +27,8 @@ export class LoginController extends ExpressController {
|
||||
|
||||
async executeImpl() {
|
||||
try {
|
||||
const user = <AuthUser>this.req?.user;
|
||||
const req = this.req as Express.AuthenticatedRequest;
|
||||
const user = <AuthUser>req.user;
|
||||
|
||||
if (!user) {
|
||||
const errorMessage = "Unexpected missing user data";
|
||||
|
||||
@ -1,14 +1,15 @@
|
||||
import { AuthUser } from "@/contexts/auth/domain";
|
||||
import { generateExpressError } from "@/contexts/common/infrastructure/express";
|
||||
import Express from "express";
|
||||
import * as express from "express";
|
||||
import httpStatus from "http-status";
|
||||
|
||||
const profileMiddleware = (
|
||||
req: Express.Request,
|
||||
res: Express.Response,
|
||||
next: Express.NextFunction
|
||||
req: express.Request,
|
||||
res: express.Response,
|
||||
next: express.NextFunction
|
||||
) => {
|
||||
const user = <AuthUser>req?.user;
|
||||
const _req = req as Express.AuthenticatedRequest;
|
||||
const user = <AuthUser>_req.user;
|
||||
|
||||
if (!user || !user.isAdmin) {
|
||||
generateExpressError(req, res, httpStatus.UNAUTHORIZED);
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
import { AuthUser } from "@/contexts/auth/domain";
|
||||
import { composeMiddleware, generateExpressError } from "@/contexts/common/infrastructure/express";
|
||||
import { ensureIdIsValid } from "@shared/contexts";
|
||||
import Express from "express";
|
||||
import * as express from "express";
|
||||
import httpStatus from "http-status";
|
||||
import passport from "passport";
|
||||
|
||||
@ -9,20 +9,20 @@ export const checkUser = composeMiddleware([
|
||||
passport.authenticate("local-jwt", {
|
||||
session: false,
|
||||
}),
|
||||
(req: Express.Request, res: Express.Response, next: Express.NextFunction) => {
|
||||
//const user = <AuthUser>req?.user;
|
||||
(req: express.Request, res: express.Response, next: express.NextFunction) => {
|
||||
if (req.isAuthenticated()) {
|
||||
return next();
|
||||
}
|
||||
|
||||
return generateExpressError(req, res, httpStatus.UNAUTHORIZED);
|
||||
},
|
||||
]);
|
||||
|
||||
export const checkisAdmin = composeMiddleware([
|
||||
checkUser,
|
||||
(req: Express.Request, res: Express.Response, next: Express.NextFunction) => {
|
||||
const user = <AuthUser>req?.user;
|
||||
(req: express.Request, res: express.Response, next: express.NextFunction) => {
|
||||
const _req = req as Express.AuthenticatedRequest;
|
||||
const user = <AuthUser>_req.user;
|
||||
|
||||
if (!user || !user.isAdmin) {
|
||||
generateExpressError(req, res, httpStatus.UNAUTHORIZED);
|
||||
}
|
||||
@ -32,8 +32,9 @@ export const checkisAdmin = composeMiddleware([
|
||||
|
||||
export const checkAdminOrSelf = composeMiddleware([
|
||||
checkUser,
|
||||
(req: Express.Request, res: Express.Response, next: Express.NextFunction) => {
|
||||
const user = <AuthUser>req?.user;
|
||||
(req: express.Request, res: express.Response, next: express.NextFunction) => {
|
||||
const _req = req as Express.AuthenticatedRequest;
|
||||
const user = <AuthUser>_req.user;
|
||||
|
||||
const { userId } = req.params;
|
||||
|
||||
@ -41,7 +42,7 @@ export const checkAdminOrSelf = composeMiddleware([
|
||||
return next();
|
||||
}
|
||||
|
||||
if (userId) {
|
||||
if (user && userId) {
|
||||
const paramIdOrError = ensureIdIsValid(userId);
|
||||
if (paramIdOrError.isSuccess && user.id.equals(paramIdOrError.object)) {
|
||||
return next();
|
||||
|
||||
@ -55,12 +55,12 @@ class EmailStrategyController extends PassportStrategyController {
|
||||
}
|
||||
|
||||
export const initEmailStrategy = (context: IAuthContext) =>
|
||||
new EmailStrategy(strategyOpts, async (...params) => {
|
||||
new EmailStrategy(strategyOpts, async (username, password, done) => {
|
||||
registerAuthRepository(context);
|
||||
return new EmailStrategyController(
|
||||
{
|
||||
useCase: new LoginUseCase(context),
|
||||
},
|
||||
context
|
||||
).verifyStrategy(...params);
|
||||
).verifyStrategy(username, password, done);
|
||||
});
|
||||
|
||||
@ -2,11 +2,7 @@ import { config } from "@/config";
|
||||
import { FindUserByEmailUseCase } from "@/contexts/auth/application/FindUserByEmail.useCase";
|
||||
import { IServerError } from "@/contexts/common/domain/errors";
|
||||
import { PassportStrategyController } from "@/contexts/common/infrastructure/express";
|
||||
import {
|
||||
ExtractJwt,
|
||||
Strategy as JWTStrategy,
|
||||
VerifiedCallback,
|
||||
} from "passport-jwt";
|
||||
import { ExtractJwt, Strategy as JWTStrategy, VerifiedCallback } from "passport-jwt";
|
||||
import { IAuthContext } from "../../Auth.context";
|
||||
import { registerAuthRepository } from "../../Auth.repository";
|
||||
|
||||
@ -23,7 +19,7 @@ class JWTStrategyController extends PassportStrategyController {
|
||||
props: {
|
||||
useCase: FindUserByEmailUseCase;
|
||||
},
|
||||
context: any,
|
||||
context: any
|
||||
) {
|
||||
super();
|
||||
|
||||
@ -49,12 +45,12 @@ class JWTStrategyController extends PassportStrategyController {
|
||||
}
|
||||
|
||||
export const initJWTStrategy = (context: IAuthContext) =>
|
||||
new JWTStrategy(strategyOpts, async (...params) => {
|
||||
new JWTStrategy(strategyOpts, async (payload, done) => {
|
||||
registerAuthRepository(context);
|
||||
return new JWTStrategyController(
|
||||
{
|
||||
useCase: new FindUserByEmailUseCase(context),
|
||||
},
|
||||
context,
|
||||
).verifyStrategy(...params);
|
||||
context
|
||||
).verifyStrategy(payload, done);
|
||||
});
|
||||
|
||||
@ -51,7 +51,8 @@ export class ListArticlesController extends ExpressController {
|
||||
}
|
||||
|
||||
async executeImpl() {
|
||||
const { language = Language.createDefaultCode() } = <AuthUser>this.req.user;
|
||||
const req = this.req as Express.AuthenticatedRequest;
|
||||
const { language = Language.createDefaultCode() } = <AuthUser>req.user;
|
||||
|
||||
const queryOrError = this.validateQuery({
|
||||
$filters: `lang_code[eq]${language.toString()}`,
|
||||
|
||||
@ -30,7 +30,8 @@ export class GetProfileController extends ExpressController {
|
||||
}
|
||||
|
||||
async executeImpl(): Promise<any> {
|
||||
const user = <AuthUser>this.req.user;
|
||||
const req = this.req as Express.AuthenticatedRequest;
|
||||
const user = <AuthUser>req.user;
|
||||
|
||||
if (!user) {
|
||||
const errorMessage = "Unexpected missing user data";
|
||||
|
||||
@ -33,7 +33,8 @@ export class UpdateProfileController extends ExpressController {
|
||||
}
|
||||
|
||||
async executeImpl() {
|
||||
const user = <User | undefined>this.req.user;
|
||||
const req = this.req as Express.AuthenticatedRequest;
|
||||
const user = <User>req.user;
|
||||
|
||||
if (!user) {
|
||||
const errorMessage = "Unexpected missing Profile data";
|
||||
|
||||
@ -1,15 +1,16 @@
|
||||
import { AuthUser } from "@/contexts/auth/domain";
|
||||
import { GetDealerByUserUseCase } from "@/contexts/sales/application";
|
||||
import Express from "express";
|
||||
import * as express from "express";
|
||||
import { registerDealerRepository } from "../../Dealer.repository";
|
||||
import { ISalesContext } from "../../Sales.context";
|
||||
|
||||
export const getDealerMiddleware = async (
|
||||
req: Express.Request,
|
||||
res: Express.Response,
|
||||
next: Express.NextFunction
|
||||
req: express.Request,
|
||||
res: express.Response,
|
||||
next: express.NextFunction
|
||||
) => {
|
||||
const user = <AuthUser>req?.user;
|
||||
const _req = req as Express.AuthenticatedRequest;
|
||||
const user = <AuthUser>_req.user;
|
||||
const context: ISalesContext = res.locals.context;
|
||||
|
||||
registerDealerRepository(context);
|
||||
|
||||
@ -1,9 +1,9 @@
|
||||
import { checkUser, createLoginController } from "@/contexts/auth";
|
||||
import Express from "express";
|
||||
import * as express from "express";
|
||||
import passport from "passport";
|
||||
|
||||
export const authRouter = (appRouter: Express.Router) => {
|
||||
const authRoutes: Express.Router = Express.Router({ mergeParams: true });
|
||||
export const authRouter = (appRouter: express.Router) => {
|
||||
const authRoutes: express.Router = express.Router({ mergeParams: true });
|
||||
|
||||
//appRouter.use(registerMiddleware("isUser", isUser));
|
||||
//appRouter.use(registerMiddleware("isAdmin", isAdmin));
|
||||
@ -11,12 +11,13 @@ export const authRouter = (appRouter: Express.Router) => {
|
||||
authRoutes.post(
|
||||
"/login",
|
||||
passport.authenticate("local-email", { session: false }),
|
||||
(req: Express.Request, res: Express.Response, next: Express.NextFunction) =>
|
||||
(req: express.Request, res: express.Response, next: express.NextFunction) =>
|
||||
createLoginController(res.locals["context"]).execute(req, res, next)
|
||||
);
|
||||
|
||||
authRoutes.post("/logout", checkUser, (req: Express.Request, res: Express.Response) => {
|
||||
req?.logout(function (err) {
|
||||
authRoutes.post("/logout", checkUser, (req: express.Request, res: express.Response) => {
|
||||
const _req = req as Express.AuthenticatedRequest;
|
||||
_req.logout(function (err) {
|
||||
if (err) {
|
||||
return res.status(500).json();
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user