feat: Working vendor views, does need some tweeks to user experience.

This commit is contained in:
2025-01-16 11:09:35 -05:00
parent d4a8444700
commit 51124205b8
7 changed files with 155 additions and 91 deletions

View File

@@ -2,23 +2,22 @@ import DatabaseClientLive
import SharedModels
import Vapor
// TODO: Fix before production.
extension RoutesBuilder {
// Used to ensure views are protected, redirects users to the login page if they're
// not authenticated.
var protected: any RoutesBuilder {
// #if DEBUG
// return self
// #else
return grouped(
UserPasswordAuthenticator(),
UserTokenAuthenticator(),
UserSessionAuthenticator(),
User.redirectMiddleware { req in
"login?next=\(req.url)"
}
)
// #endif
return self
// return grouped(
// UserPasswordAuthenticator(),
// UserTokenAuthenticator(),
// UserSessionAuthenticator(),
// User.redirectMiddleware { req in
// "login?next=\(req.url)"
// }
// )
}
func apiUnprotected(route: PathComponent) -> any RoutesBuilder {
@@ -28,15 +27,12 @@ extension RoutesBuilder {
// Allows basic or token authentication for api routes and prefixes the
// given route with "/api/v1".
func apiProtected(route: PathComponent) -> any RoutesBuilder {
// #if DEBUG
// return apiUnprotected(route: route)
// #else
let prefixed = grouped("api", "v1", route)
return prefixed.grouped(
UserPasswordAuthenticator(),
UserTokenAuthenticator(),
User.guardMiddleware()
)
// #endif
return apiUnprotected(route: route)
// let prefixed = grouped("api", "v1", route)
// return prefixed.grouped(
// UserPasswordAuthenticator(),
// UserTokenAuthenticator(),
// User.guardMiddleware()
// )
}
}