gmaissa / redmine-user-provider-bundle
A bundle to use Redmine as a user provider for Symfony projects.
Installs: 3
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
Type:symfony-bundle
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: 2025-03-30 05:28:06 UTC
README
master |
---|
About
A bundle to use Redmine as a user provider.
Installation
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 ...
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 :
# 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) :
# 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 :
# 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 :
# 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
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
.
# 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
.
# 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 :
composer install --dev
Run PHPUnit test suite :
php vendor/bin/phpunit
Contributing
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.
License
This bundle is released under the MIT license. See the complete license in the bundle:
src/Resources/meta/LICENSE