62 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			62 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| How to Switch Identities with a user
 | |
| ====================================
 | |
| 
 | |
| If you are admin, you can impersonate (switch identities with another user). This action is taken when you, as an admin, 
 | |
| needs to check the panel of a user. Whether for support or simply checking whether is using correctly your system 
 | |
| according to your terms and conditions. 
 | |
| 
 | |
| The default view of this module provides the mechanism on the grid that displays the users by placing a user icon on 
 | |
| its actions column. Once, clicked, it will call the **/user/admin/switch-identity** and make the transition. Then will 
 | |
| redirect you to the index page (`goHome()`) and is there where you will have to take the correspondent actions to 
 | |
| display the views appropriated for that user. 
 | |
|  
 | |
| How to rollback to admin user
 | |
| -----------------------------
 | |
| The way to do it is by calling that action again. The link to do that could be written like this: 
 | |
| 
 | |
| ```php
 | |
| $module = Yii::$app->getModule('user');
 | |
| 
 | |
| if(Yii::$app->session->has($module->switchIdentitySessionKey)) {
 | |
|    echo Html::a('Switch to Admin', ['/user/admin/switch-identity'], ['data-method' => 'post']);
 | |
| }
 | |
| ```
 | |
| > Note: If you use RBAC we can add access for all user to to this action for back to original user available.
 | |
| ```php
 | |
| ...
 | |
|     'modules' => [
 | |
|         'user' => [
 | |
|             'controllerMap' => [
 | |
|                 'admin' => [
 | |
|                     'class' => Da\User\Controller\AdminController::class,
 | |
|                     'as access' => [
 | |
|                         'class' => yii\filters\AccessControl::class,
 | |
|                         'rules' => [
 | |
|                             ['allow' => true, 'actions' => ['switch-identity']],
 | |
|                             ['allow' => true, 'permissions' => ['administrateUser']],
 | |
|                         ],
 | |
|                     ],
 | |
|                 ],
 | |
|             ],
 | |
|         ],
 | |
|     ],
 | |
| ...
 | |
| ``` 
 | |
| > Also you can define access role `'administratorPermissionName' => 'admin',` where `admin` is have `administrateUser` permission
 | |
| ```php
 | |
| ...
 | |
|     'modules' => [
 | |
|         'user' => [
 | |
|             'class' => Da\User\Module::class,
 | |
|             'administratorPermissionName' => 'admin',
 | |
|         ],
 | |
|     ],
 | |
| ...
 | |
| ``` 
 | |
| 
 | |
| 
 | |
| Check the [switchIdentitySessionKey](../installation/configuration-options.md#switchidentitysessionkey) documentation  
 | |
| for further information regarding this configuration option. 
 | |
| 
 | |
| © [2amigos](http://www.2amigos.us/) 2013-2019
 |