RedmineUserProviderBundle
About
A bundle to use Redmine as a user provider., (*1)
Installation
The recommended way to install this bundle is through Composer. Just run :, (*2)
composer require gmaissa/redmine-user-provider-bundle
Register the bundle in the kernel of your application :, (*3)
// app/AppKernel.php
public function registerBundles()
{
$bundles = array(
// ...
new GMaissa\RedmineUserProviderBundle\GmRedmineUserProviderBundle(),
);
return $bundles;
}
Use the Redmine user provider in your security.yml file :, (*4)
# app/config/security.yml
security:
...
providers:
app:
id: gm_redmine_user_provider.provider
...
Configuration reference
# 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
Persist your User
User entity class
Implement your own User Entity class, extending GMaissa\RedmineUserProviderBundle\Entity\User
and declare it in the bundle
configuration :, (*5)
# app/config/config.yml
gm_redmine_user_provider:
...
user_class: AppBundle\Entity\User
Using a provided user repository
Enable the provided persistence driver you want to use (for now only Doctrine ORM is provided) :, (*6)
# app/config/config.yml
gm_redmine_user_provider:
...
user_class: AppBundle\Entity\User
persistence_driver: orm
Using a custom user repository
Implements the GMaissa\RedmineUserProviderBundle\Repository\UserRepositoryInterface
interface for your repository
serviceand tag is as a
gm_redmine_user_provider.user_repository :, (*7)
# services.yml
services:
app.user_repository:
class: AppBundle\Repository\UserReposioty
tags:
- {name: gm_redmine_user_provider.user_repository}
Using with FOSOAuthServerBundle
Enable the OAuth Server Bridge :, (*8)
# app/config/config.yml
gm_redmine_user_provider:
...
oauthserver_bridge: true
You can now use the OAuth Storage service gm_redmine_user_provider.bridge.oauth.storage
:, (*9)
# app/config/config.yml
fos_oauth_server:
...
service:
storage: gm_redmine_user_provider.bridge.oauth.storage
Implementing your own User Factory
If you want to use a custom User Factory, implement the GMaissa\RedmineUserProviderBundle\Factory\UserFactoryInterface
interface, register your service and alias it as gm_redmine_user_provider.factory.user
., (*10)
# 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
Using your own Redmine Api Client
Like the custom User Factory, implement the GMaissa\RedmineUserProviderBundle\ApiClient\RedmineApiClientInterface
interface, register your service and alias it as gm_redmine_user_provider.api.client
., (*11)
# 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
Running tests
Install the dev dependencies :, (*12)
composer install --dev, (*13)
Run PHPUnit test suite :, (*14)
php vendor/bin/phpunit
Contributing
In order to be accepted, your contribution needs to pass a few controls :, (*15)
- PHP files should be valid
- PHP files should follow the PSR-2 standard
- PHP files should be phpmd and phpcpd
warning/error free
To ease the validation process, install the pre-commit framework
and install the repository pre-commit hook :, (*16)
pre-commit install
Finally, in order to homogenize commit messages across contributors (and to ease generation of the CHANGELOG),
please apply this git commit message hook
onto your local repository., (*17)
License
This bundle is released under the MIT license. See the complete license in the bundle:, (*18)
src/Resources/meta/LICENSE