HotSoda

用于 Vapor 应用的能力管理工具。

先决条件

Swift

操作系统

安装

将以下内容添加到您的 Package.swift 文件中的依赖项。

.package(url: "https://github.com/rb-de0/HotSoda.git", from: "0.1.0")

用法

Provider

要使用 HotSoda,您首先需要将 Provider 添加到 Services。

try services.register(HotSodaProvider())

AbilityProtected

将您要管理能力的模型遵循 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

通过使用 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)

LICENSE

HotSoda 在 MIT 许可证下发布。有关更多信息,请参见 LICENSE 文件。