52 lines
1.3 KiB
Swift
52 lines
1.3 KiB
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 .index: return viewProtectedMiddleware
|
|
case let .employee(route): return route.middleware
|
|
case .login: return nil
|
|
case let .purchaseOrder(route): return route.middleware
|
|
case let .user(route): return route.middleware
|
|
case let .vendor(route): return route.middleware
|
|
case let .vendorBranch(route): return route.middleware
|
|
}
|
|
}
|
|
}
|
|
|
|
extension SharedModels.ViewRoute.EmployeeRoute {
|
|
|
|
var middleware: [any Middleware]? { viewProtectedMiddleware }
|
|
}
|
|
|
|
extension SharedModels.ViewRoute.PurchaseOrderRoute {
|
|
var middleware: [any Middleware]? { viewProtectedMiddleware }
|
|
}
|
|
|
|
extension SharedModels.ViewRoute.UserRoute {
|
|
var middleware: [any Middleware]? {
|
|
viewProtectedMiddleware
|
|
}
|
|
}
|
|
|
|
extension SharedModels.ViewRoute.VendorRoute {
|
|
var middleware: [any Middleware]? { viewProtectedMiddleware }
|
|
}
|
|
|
|
extension SharedModels.ViewRoute.VendorBranchRoute {
|
|
var middleware: [any Middleware]? { viewProtectedMiddleware }
|
|
}
|