gmaissa/redmine-user-provider-bundle

一个将 Redmine 用作 Symfony 项目的用户提供者的包。

1.0.0 2017-04-14 22:39 UTC

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

贡献

为了被接受,您的贡献需要通过一些控制

  • PHP 文件应该是有效的
  • PHP 文件应遵循 PSR-2 标准
  • PHP 文件应该是 phpmdphpcpd 警告/错误免费

为了简化验证过程,安装 pre-commit 框架 并安装存储库的 pre-commit 钩子

pre-commit install

最后,为了在整个贡献者之间统一提交消息(并简化 CHANGELOG 的生成),请将此 git 提交消息钩子 应用于您的本地存储库。

许可证

此包根据 MIT 许可证发布。请参阅包中的完整许可证。

src/Resources/meta/LICENSE