用于 Vapor 应用的能力管理工具。
将以下内容添加到您的 Package.swift 文件中的依赖项。
.package(url: "https://github.com/rb-de0/HotSoda.git", from: "0.1.0")
要使用 HotSoda
,您首先需要将 Provider 添加到 Services。
try services.register(HotSodaProvider())
将您要管理能力的模型遵循 AbilityProtected
协议。
extension User: AbilityProtected {
static func canCreate(on request: Request) -> Future<Void> {
...
}
func canRead(on request: Request) -> Future<User> {
...
}
func canUpdate(on request: Request) -> Future<User> {
...
}
func canDelete(on request: Request) -> Future<User> {
...
}
}
通过使用 AbilityProtectedMiddleware,您可以保护用于控制模型的能力。
模型必须遵循 AbilityProtected & Model & Parameter
协议。
router.protected(User.self, for: [.create]).post("users", use: UserController().store)
或者
router.protect(User.self, for: [.create]) { router in
router.post("users", use: UserController().store)
}
通过中间件缓存的模型,您可以按如下方式获取模型,而无需数据库连接。
try request.requireControllable(User.self)
HotSoda 在 MIT 许可证下发布。有关更多信息,请参见 LICENSE 文件。