keboola/permission-checker

Keboola K8S 客户端库


README

通用的权限检查器,将所有的权限检查集中在一个地方。

使用方法

库提供了 Keboola\PermissionChecker\StorageApiTokenInterface 接口,该接口预期由调用者实现(或由其他兼容库提供)。然后将令牌传递给 Keboola\PermissionChecker\PermissionChecker,并带有要验证的具体检查器。

如果检查通过,则脚本正常执行。如果检查失败,则抛出带有描述失败原因的消息的 Keboola\PermissionChecker\Exception\PermissionException,并且可以安全地呈现给用户。

use Keboola\PermissionChecker\PermissionChecker;
use Keboola\PersmissionChecker\Checker\JobQueue\CanRunJob;

$storageToken = new MyStorageApiClass(...)

$checker = new PermissionChecker();
$checker->checkPermissions($storageToken, new CanRunJob(BranchType::DEFAULT, 'keboola.component-id'));

开发

先决条件

  • 安装 docker 以运行和开发库

TL;DR

docker compose run --rm dev-permission-checker composer install
docker compose run --rm dev-permission-checker composer ci

实现新的检查器

每个需要验证的操作都有自己的检查器 - 实现 Keboola\PermissionChecker\Checker\PermissionCheckerInterface 的类。该接口只有一个方法 checkPermission,它接收 Keboola\PersmissionChecker\StorageApiToken 实例(与传递给 Keboola\PermissionChecker\PermissionChecker::checkPermissions() 的令牌不同的类)并在检查失败时抛出 Keboola\PermissionChecker\Exception\PermissionException

如果检查器需要任何其他数据或依赖于某些其他服务,它可以在构造函数中自由要求这些数据。

许可证

MIT 许可,见 LICENSE 文件。