bigz / switch-user-stateless-bundle
Bundle to use impersonating on Symfony API
Installs: 8 594
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 11
Type:symfony-bundle
Requires
- php: >=5.5
- symfony/config: ^2.3|^3.0|^4.0|^5.0
- symfony/dependency-injection: ^2.3|^3.0|^4.0|^5.0
- symfony/http-foundation: ^2.3|^3.0|^4.0|^5.0
- symfony/http-kernel: ^2.3|^3.0|^4.0|^5.0
- symfony/security-bundle: ^2.3|^3.0|^4.0|^5.0
- symfony/security-core: ^2.3|^3.0|^4.0|^5.0
- symfony/security-http: ^2.3|^3.0|^4.0|^5.0
Requires (Dev)
- behat/behat: ^3.0
- behat/symfony2-extension: ^2.0
- doctrine/doctrine-bundle: ^1.2
- doctrine/orm: ^2.2,>=2.2.3
- phpunit/phpunit: <5.0
- symfony/browser-kit: ^2.3|^3.0|^4.0|^5.0
- symfony/serializer: ^2.3|^3.0|^4.0|^5.0
Suggests
- psr/log: To log user requests
- symfony/event-dispatcher: To dispatch a switch user event
This package is not auto-updated.
Last update: 2024-12-21 21:14:37 UTC
README
This bundle provides impersonating feature (switch user) for API use.
Install
Install this bundle through Composer:
composer require lafourchette/switch-user-stateless-bundle
Then, update your application kernel:
// app/AppKernel.php class AppKernel extends Kernel { public function registerBundles() { $bundles = [ // ... new LaFourchette\SwitchUserStatelessBundle\SwitchUserStatelessBundle(), ]; // ... } }
Finally, update your firewalls as following:
# app/config/security.yml security: firewalls: main: # ... stateless: true switch_user_stateless: true
Configuration
You can configure the parameter used in HTTP request and role of user who switch in your config.yml. The examples below are the default values.
# app/config/config.yml switch_user_stateless: parameter: 'X-Switch-User' role: 'ROLE_ALLOWED_TO_SWITCH'
Usage
To use this feature, you need to add a X-Switch-User
header to issued HTTP request containing the username of the
user you want to switch:
X-Switch-User: johndoe
For security reasons, this feature is only accessible for users with ROLE_ALLOWED_TO_SWITCH
permission. Admin users
have this permission by default.