Introduce async local storage for request access, more view globals, and improved welcome view
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2021-11-27 10:30:49 -06:00
parent b5eb407b55
commit 463076d182
8 changed files with 148 additions and 32 deletions

View File

@@ -7,6 +7,8 @@ import {Middleware} from '../http/routing/Middleware'
import {AuthRequiredMiddleware} from './middleware/AuthRequiredMiddleware'
import {GuestRequiredMiddleware} from './middleware/GuestRequiredMiddleware'
import {SessionAuthMiddleware} from './middleware/SessionAuthMiddleware'
import {ViewEngine} from '../views/ViewEngine'
import {SecurityContext} from './context/SecurityContext'
@Injectable()
export class Authentication extends Unit {
@@ -18,6 +20,13 @@ export class Authentication extends Unit {
async up(): Promise<void> {
this.middleware.registerNamespace('@auth', this.getMiddlewareResolver())
this.container().onResolve<ViewEngine>(ViewEngine)
.then((engine: ViewEngine) => {
engine.registerGlobalFactory('user', req => {
return () => req?.make<SecurityContext>(SecurityContext)?.getUser()
})
})
}
protected getMiddlewareResolver(): CanonicalResolver<StaticInstantiable<Middleware>> {