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 SiteRoute.View { var middleware: [any Middleware]? { switch self { case .employee, .purchaseOrder, .user, .vendor, .vendorBranch: return viewProtectedMiddleware case .login: return nil } } }