gmaissa/redmine-user-provider-bundle
一个将 Redmine 用作 Symfony 项目的用户提供者的包。
Requires
- php: >=7.0
- doctrine/collections: ^1.4
- kbsali/redmine-api: ^1.5
- psr/log: ^1.0
- symfony/framework-bundle: ^3.0
- symfony/yaml: ^3.2
Requires (Dev)
- doctrine/orm: ^2.5
- friendsofsymfony/oauth-server-bundle: ^1.5
- phpmd/phpmd: ^2.6
- phpunit/phpunit: ^6.0
- sebastian/phpcpd: ^3.0
- squizlabs/php_codesniffer: ^2.8
- symfony/phpunit-bridge: 3.3.*@dev
Suggests
- friendsofsymfony/oauth-server-bundle: Manage OAuth2 authentication for API
This package is not auto-updated.
Last update: 2024-09-29 03:00:00 UTC
README
关于
一个将 Redmine 用作用户提供者的包。
安装
推荐通过 Composer 安装此包。只需运行
composer require gmaissa/redmine-user-provider-bundle
在应用内核中注册此包
// app/AppKernel.php public function registerBundles() { $bundles = array( // ... new GMaissa\RedmineUserProviderBundle\GmRedmineUserProviderBundle(), ); return $bundles; }
在您的 security.yml 文件中使用 Redmine 用户提供者
# app/config/security.yml security: ... providers: app: id: gm_redmine_user_provider.provider ...
配置参考
# app/config/config.yml gm_redmine_user_provider: redmine: url: ~ # Required allowed_domains: [] user_class: GMaissa\RedmineUserProviderBundle\Model\RedmineUser persistence_driver: ~ # One of "orm" oauthserver_bridge: false
持久化用户
用户实体类
实现您自己的用户实体类,继承 GMaissa\RedmineUserProviderBundle\Entity\User
并在包配置中声明它
# app/config/config.yml gm_redmine_user_provider: ... user_class: AppBundle\Entity\User
使用提供的用户存储库
启用您要使用的提供的持久化驱动程序(目前仅提供 Doctrine ORM)
# app/config/config.yml gm_redmine_user_provider: ... user_class: AppBundle\Entity\User persistence_driver: orm
使用自定义用户存储库
为您的存储库服务实现 GMaissa\RedmineUserProviderBundle\Repository\UserRepositoryInterface
接口,并使用 gm_redmine_user_provider.user_repository
标签
# services.yml services: app.user_repository: class: AppBundle\Repository\UserReposioty tags: - {name: gm_redmine_user_provider.user_repository}
与 FOSOAuthServerBundle 一起使用
启用 OAuth 服务器桥接
# app/config/config.yml gm_redmine_user_provider: ... oauthserver_bridge: true
现在您可以使用 OAuth 存储服务 gm_redmine_user_provider.bridge.oauth.storage
# app/config/config.yml fos_oauth_server: ... service: storage: gm_redmine_user_provider.bridge.oauth.storage
实现自己的用户工厂
如果您想使用自定义用户工厂,实现 GMaissa\RedmineUserProviderBundle\Factory\UserFactoryInterface
接口,注册您的服务并将其别名为 gm_redmine_user_provider.factory.user
。
# services.yml services: app.redmine_user_provider.user_factory: class: AppBundle\Factory\CustomUserFactory calls: - [setUserClass, ["%gm_redmine_user_provider.user_class%"]] alias: gm_redmine_user_provider.factory.user
使用自己的 Redmine Api 客户端
与自定义用户工厂类似,实现 GMaissa\RedmineUserProviderBundle\ApiClient\RedmineApiClientInterface
接口,注册您的服务并将其别名为 gm_redmine_user_provider.api.client
。
# services.yml services: app.redmine_user_factory.api_client: class: AppBundle\ApiClient\CustomApiClient arguments: - "%gm_redmine_user_provider.redmine.url%" alias: gm_redmine_user_provider.api.client
运行测试
安装开发依赖项
composer install --dev
运行 PHPUnit 测试套件
php vendor/bin/phpunit
贡献
为了被接受,您的贡献需要通过一些控制
为了简化验证过程,安装 pre-commit 框架 并安装存储库的 pre-commit 钩子
pre-commit install
最后,为了在整个贡献者之间统一提交消息(并简化 CHANGELOG 的生成),请将此 git 提交消息钩子 应用于您的本地存储库。
许可证
此包根据 MIT 许可证发布。请参阅包中的完整许可证。
src/Resources/meta/LICENSE