29 lines
567 B
Swift
29 lines
567 B
Swift
import DatabaseClientLive
|
|
import Dependencies
|
|
import Elementary
|
|
import SharedModels
|
|
import Vapor
|
|
|
|
private let viewProtectedMiddleware: [any Middleware] = [
|
|
UserPasswordAuthenticator(),
|
|
UserSessionAuthenticator(),
|
|
User.redirectMiddleware { req in
|
|
"/login?next=\(req.url.string)"
|
|
}
|
|
]
|
|
|
|
extension SharedModels.ViewRoute {
|
|
|
|
var middleware: [any Middleware]? {
|
|
switch self {
|
|
case .employee,
|
|
.purchaseOrder,
|
|
.user,
|
|
.vendor,
|
|
.vendorBranch:
|
|
return viewProtectedMiddleware
|
|
case .login: return nil
|
|
}
|
|
}
|
|
}
|