master |
---|
A bundle to use Redmine as a user provider.
The recommended way to install this bundle is through Composer. Just run :
composer require gmaissa/redmine-user-provider-bundle
Register the bundle in the kernel of your application :
// app/AppKernel.php
public function registerBundles()
{
$bundles = array(
// ...
new GMaissa\RedmineUserProviderBundle\GmRedmineUserProviderBundle(),
);
return $bundles;
}
Use the Redmine user provider in your security.yml file :
# 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
Implement your own User Entity class, extending GMaissa\RedmineUserProviderBundle\Entity\User
and declare it in the bundle
configuration :
# app/config/config.yml
gm_redmine_user_provider:
...
user_class: AppBundle\Entity\User
Enable the provided persistence driver you want to use (for now only Doctrine ORM is provided) :
# app/config/config.yml
gm_redmine_user_provider:
...
user_class: AppBundle\Entity\User
persistence_driver: orm
Implements the GMaissa\RedmineUserProviderBundle\Repository\UserRepositoryInterface
interface for your repository
serviceand tag is as a
gm_redmine_user_provider.user_repository :
# services.yml
services:
app.user_repository:
class: AppBundle\Repository\UserReposioty
tags:
- {name: gm_redmine_user_provider.user_repository}
Enable the OAuth Server Bridge :
# 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
:
# app/config/config.yml
fos_oauth_server:
...
service:
storage: gm_redmine_user_provider.bridge.oauth.storage
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
.
# 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
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
.
# 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
Install the dev dependencies :
composer install --dev
Run PHPUnit test suite :
php vendor/bin/phpunit
In order to be accepted, your contribution needs to pass a few controls :
- 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 :
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.
This bundle is released under the MIT license. See the complete license in the bundle:
src/Resources/meta/LICENSE