hapidjus / laravel-impersonate-ui
UI for 404labfr/laravel-impersonate
Installs: 1 238
Dependents: 0
Suggesters: 0
Security: 0
Stars: 38
Watchers: 3
Forks: 5
Open Issues: 3
Requires
- php: >=7.1.3
- lab404/laravel-impersonate: ~1.7
- laravel/framework: ^7.0|^8.0|^9.0|^10.0
Requires (Dev)
- mockery/mockery: ^1.0
- phpunit/phpunit: ^7.0|^8.0|^9.0||^10.0
README
Laravel Impersonate UI
Laravel Impersonate UI is a Laravel Package that adds an easy to use UI for selecting users to impersonate when using https://github.com/404labfr/laravel-impersonate
Requirements
- Laravel >= 6.1
- PHP >= 7.1
Installation
- Require laravel-impersonate-ui with Composer
composer require hapidjus/laravel-impersonate-ui
- Add the Trait
Lab404\Impersonate\Models\Impersonate
to your User model.
<?php namespace App; use Illuminate\Contracts\Auth\MustVerifyEmail; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; use Lab404\Impersonate\Models\Impersonate; class User extends Authenticatable { use Notifiable, Impersonate; }
Configuration
To publish the config and blade files use:
php artisan vendor:publish --provider="Hapidjus\ImpersonateUI\ImpersonateUiServiceProvider"
Append --tag=config
or --tag=view
to only publish config or blade files.
This is the contents of the config file:
return [ /** * Enable Laravel Impersonate UI * * Laravel Impersonate UI is enabled by default when in debug * */ 'enabled' => env('APP_DEBUG',false), /** * Users allowed to impersonate * * Array of user emails, i.e ['admin@example.com'] or null for all * */ 'users_allowed_to_impersonate' => ['admin@example.com'], /** * Position of icon. * * Supported: "bottom-right", "bottom-left", "top-left", "top-right" * */ 'icon_position' => 'bottom-right', /** * Show Impersonate button. * * Trying to save some clicks? * Then this is the option for you! Select a user and BOOM - * form submitted - user impersonated. No need to click any * pesky buttons. * */ 'show_button' => true, /** * Globally include laravel-impersonate-ui. * * Or use this view: @include('impersonate-ui::impersonate-ui') * Note: If you choose to include the partials view you need to add * a check to test if the current users is allowed * to impersonate */ 'global_include' => true, /** * The URI/Route to redirect after taking an impersonation. * * Use 'back' to redirect to the previous page * */ 'take_redirect_to' => 'back', /** * The URI/Route to redirect after leaving an impersonation. * * Use 'back' to redirect to the previous page * */ 'leave_redirect_to' => 'back', /** * Only allow these users to be impersonated * * Array of user IDs or null for all * */ 'users_only' => null, /** * Exlude these users from beeing impersonated * * Array of user IDs or null for none * */ 'users_exclude' => null, ];
Partials view:
You can use the partials view to include the Impersonate UI on any pages you want. Note: If you choose to include the partials view you need to add a check to test if the current users is allowed to impersonate
@include('impersonate-ui::impersonate-ui')
Have fun impersonating.
Do not use in production!