yiisoft/access

检查访问权限的接口

2.0.0 2023-08-07 07:09 UTC

This package is auto-updated.

Last update: 2024-09-18 05:53:56 UTC


README

Yii

Yii Access


Latest Stable Version Total Downloads Build status Scrutinizer Code Quality Code Coverage Mutation testing badge static analysis type-coverage

此包提供了一种检查用户是否拥有特定权限的接口。可以通过传递可选参数进行细粒度的访问检查。此外,还提供了开箱即用的 DenyAllAllowAll 实现。

要求

  • PHP 8.0 或更高版本。

安装

可以使用 Composer 安装此包

composer require yiisoft/access

通用用法

例如 RBAC 这样的访问检查器实现了此接口。用户身份可以使用它来检查访问权限

use Yiisoft\Access\AccessCheckerInterface;

class UserService
{
    private AccessCheckerInterface $accessChecker;
    
    public function __construct(AccessCheckerInterface $accessChecker)
    {
        $this->accessChecker = $accessChecker;
    }
    
    public function can(string $permissionName, array $parameters = []): bool
    {
        return $this->accessChecker->userHasPermission(
            $this
                ->getCurrentUser()
                ->getId(),
            $permissionName,
            $parameters
        );
    }
    
    public function getCurrentUser(): User
    {
        // ...
    }
}

在处理器中可能看起来像以下这样

public function actionList(UserService $userService)
{
    if (!$userService->can('list_posts')) {
        // access denied
    }

    // list posts
}

文档

如果您需要帮助或有疑问,Yii 论坛 是一个不错的选择。您还可以查看其他 Yii 社区资源

许可证

Yii Access 是免费软件。它根据 BSD 许可证发布。有关更多信息,请参阅 LICENSE

Yii Software 维护。

支持项目

Open Collective

关注更新

Official website Twitter Telegram Facebook Slack