keboola / permission-checker
Keboola K8S 客户端库
Requires
- php: ^8.1
- keboola/common-exceptions: ^1.2
Requires (Dev)
- infection/infection: ^0.27.0
- keboola/coding-standard: ^15.0
- keboola/storage-api-php-client-branch-wrapper: ^5.1
- phpstan/phpstan: ^1.9
- phpstan/phpstan-phpunit: ^1.1
- phpunit/phpunit: ^9.5
- sempro/phpunit-pretty-print: ^1.4
- symfony/dotenv: ^6.2
- symfony/filesystem: ^6.1
- dev-main
- 2.7.1
- 2.7.0
- 2.6.0
- 2.5.0
- 2.4.0
- 2.3.0
- 2.2.0
- 2.1.0
- 2.0.1
- 2.0.0
- 1.1.1
- 1.1.0
- 1.0.0
- 0.2.0
- 0.1.2
- 0.1.1
- 0.1.0
- dev-erik-PST-2051
- dev-pepa_PST-777_tableIngoGenerator
- dev-odin-PST-1670
- dev-pepa_k8s_deployment
- dev-roman-pst-1710
- dev-erik-PST-850-part2
- dev-pepa_auth_adminToken
- dev-rrik-om-ci-fixup
- dev-erik-GCP-374-part3
- dev-erik-GCP-472
- dev-erik-GCP-374-part1
- dev-odin-GCP-374-c
This package is auto-updated.
Last update: 2024-09-20 10:14:06 UTC
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 文件。