This repository has been archived on 2024-11-10. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
enzos-events/app/Exceptions/Handler.ts
Sockenklaus 864da02de5 - added working typescript support to vue
- added bouncer support
- added UserPolicies
- added first user index call
2023-07-08 08:16:08 +02:00

52 lines
1.5 KiB
TypeScript

/*
|--------------------------------------------------------------------------
| Http Exception Handler
|--------------------------------------------------------------------------
|
| AdonisJs will forward all exceptions occurred during an HTTP request to
| the following class. You can learn more about exception handling by
| reading docs.
|
| The exception handler extends a base `HttpExceptionHandler` which is not
| mandatory, however it can do lot of heavy lifting to handle the errors
| properly.
|
*/
import Logger from '@ioc:Adonis/Core/Logger'
import HttpExceptionHandler from '@ioc:Adonis/Core/HttpExceptionHandler'
import { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'
export default class ExceptionHandler extends HttpExceptionHandler {
protected statusPages = {
'403': 'errors/unauthorized',
'404': 'errors/not-found',
'500..599': 'errors/server-error',
}
constructor() {
super(Logger)
}
public async handle(error: any, ctx: HttpContextContract) {
const { session, response } = ctx;
/**
* Handle failed authentication attempt
*/
if (['E_INVALID_AUTH_PASSWORD', 'E_INVALID_AUTH_UID'].includes(error.code)) {
session.flash('login', { error: error.message });
return response.redirect().back();
}
if(['E_AUTHORIZATION_FAILURE'].includes(error.code)) {
session.flash('auth', { error: error.message })
return response.redirect().back()
}
/**
* Forward rest of the exceptions to the parent class
*/
return super.handle(error, ctx);
}
}