linkorb / userbase-role-provider-bundle
适用于现代 Symfony 应用的 Userbase 角色提供者包
v4.0.0
2022-10-04 13:06 UTC
Requires
- php: >=8.0.3
- linkorb/userbase-role-contracts: ^2.0
- symfony/config: ^6.0
- symfony/dependency-injection: ^6.0
- symfony/http-kernel: ^6.0
- symfony/yaml: ^6.0
Requires (Dev)
- symfony/phpunit-bridge: ^6.0
README
Userbase 角色提供者包
使用此包为通过 UserProvider 加载的用户添加角色。
Userbase 不提供其用户的角色信息,因此应用程序需要提供自己的信息。此包允许您为您的用户定义固定角色,这些角色将被集成到 Userbase UserProvider 加载的用户对象中。
在 config/roles.yaml
文件中定义固定角色:
my-username: [ROLE_ADMIN] some-other-username: [ROLE_USER]
接下来,清除应用程序缓存,以便将这些角色固化到服务容器配置中。就这样!现在您可以根据这些角色限制对资源的访问。
该包将在没有任何进一步配置的情况下从 roles.yaml 文件中加载角色。它还可以配置为从环境加载角色。填充名为 userbase.roles
的服务参数是实现此替代配置的关键。
# add to a .env file
USERBASE_ROLES='{"adele":["ROLE_ADMIN"]}'
# add to config/services.yaml
parameters:
userbase.roles: '%env(json:USERBASE_ROLES)%'
# add to config/packages/userbase.yaml
userbase_role_provider:
fixed_roles:
from_files: false
对 userbase.yaml 的更改将需要清除应用程序缓存。然后,角色将在每个请求的开始时从 USERBASE_ROLES
环境变量中加载。
安装
注意:此功能需要 userbase/client 包的 1.7 或更高版本。您可能需要通过以下命令开始安装:
$ composer require "linkorb/userbase-client ^1.7"
使用 Symfony Flex 的应用程序
打开命令控制台,进入您的项目目录并执行以下命令
$ composer require linkorb/userbase-role-provider-bundle
不使用 Symfony Flex 的应用程序
步骤 1:下载包
打开命令控制台,进入您的项目目录,并执行以下命令以下载此包的最新稳定版本
$ composer require linkorb/userbase-role-provider-bundle
此命令要求您全局安装了 Composer,具体请参阅 Composer 文档中的 安装章节。
步骤 2:启用包
然后,通过将其添加到项目 config/bundles.php
文件中注册的包列表中来启用该包。
// config/bundles.php return [ // ... LinkORB\Userbase\RoleProvider\UserbaseRoleProviderBundle::class => ['all' => true], ];