163 lines
		
	
	
		
			6.5 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			163 lines
		
	
	
		
			6.5 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| # Yii 2 Usuario Extension
 | |
| 
 | |
| [](http://yii2-usuario.readthedocs.io/en/latest/?badge=latest)
 | |
| [](https://gitter.im/2amigos/yii2-usuario?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
 | |
| [](https://packagist.org/packages/2amigos/yii2-usuario)
 | |
| [](https://packagist.org/packages/2amigos/yii2-usuario)
 | |
| [](https://packagist.org/packages/2amigos/yii2-usuario)
 | |
| [](https://scrutinizer-ci.com/g/2amigos/yii2-usuario/?branch=master)
 | |
| 
 | |
| Yii 2 usuario is a highly customizable and extensible user management, RBAC management, authentication, 
 | |
| and authorization Yii2 module extension. 
 | |
| 
 | |
| It works extensively with Yii's Container making it really easy to override absolutely anything within its core. The 
 | |
| module is built to work out of the box with some minor config tweaks and it comes with the following features: 
 | |
|  
 | |
| - Backend user/profile/account management
 | |
| - Backend RBAC management 
 | |
| - Login via username/email + password process
 | |
| - Login via social network process
 | |
| - Password recovery process
 | |
| 
 | |
| 
 | |
| ## Getting Started
 | |
| 
 | |
| This extension has been built to be working `out of the box`, that is, after you install its migrations and configure 
 | |
| the module on your application structure, you should be set to go. 
 | |
| 
 | |
| #### Step 1 - Download
 | |
| 
 | |
| You can download it and place it on your third party libraries folder but we highly recommend that you install it 
 | |
| through [composer](http://getcomposer.org/download/).
 | |
| 
 | |
| Either run
 | |
| 
 | |
| ```bash
 | |
| $ composer require 2amigos/yii2-usuario:~1.0
 | |
| ```
 | |
| 
 | |
| or add
 | |
| 
 | |
| ```
 | |
| "2amigos/yii2-usuario": "~1.0"
 | |
| ```
 | |
| 
 | |
| to the `require` section of your `composer.json` file.
 | |
| 
 | |
| #### Step 2 - Apply database schema migrations
 | |
| 
 | |
| This is obvious extension like our which deals with users, roles, permissions, etc. have to use some database.
 | |
| Our migrations are namespaced and available in `Da\User\Migration` namespace.
 | |
| 
 | |
| > **Note**: If you are using Yii2's Advanced Application Template, before starting to work with database, please ensure 
 | |
| you have deleted `m130524_201442_init.php` migration file which comes from the default installation. It's located at
 | |
| `%PROJECT_DIR%/console/migrations/m130524_201442_init.php` path.
 | |
| 
 | |
| There are two ways to apply migrations of this extension, the first one:
 | |
| 
 | |
| ```php
 | |
| ./yii migrate --migrationNamespaces=Da\\User\\Migration
 | |
| ./yii migrate --migrationPath=@yii/rbac/migrations
 | |
| ./yii migrate
 | |
| ```
 | |
| 
 | |
| First command applies migration set of the user module, and the second one is for Yii RBAC migration, the third is for 
 | |
| your own application migrations.
 | |
| 
 | |
| > **Note**: you cannot mix two ways: choose one of them, and stick with it.
 | |
| 
 | |
| The second way is more comfortable, and you don't have to remember to launch first command every time you obtain
 | |
| new version of our extension. First of all add the following lines to the file
 | |
| `%PROJECT_DIR%/console/config/main.php`:
 | |
| 
 | |
| ```php
 | |
| return [
 | |
|     // ...
 | |
|     'controllerMap' => [
 | |
|         'migrate' => [
 | |
|             'class' => \yii\console\controllers\MigrateController::class,
 | |
|             'migrationNamespaces' => [
 | |
|                 'Da\User\Migration',
 | |
|             ],
 | |
|         ],
 | |
|     ],
 | |
|     // ...
 | |
| ];
 | |
| ```
 | |
| 
 | |
| This basically instructs your application to always try to use migrations from the given namespace. Which again
 | |
| is very convenient way to track new migration classes coming from this and possibly other extensions and sources. 
 | |
| 
 | |
| > **Note**: You will still have to apply Yii 2 RBAC migrations by executing 
 | |
| > `./yii migrate --migrationPath=@yii/rbac/migrations`. Remember that you have to configure the `AuthManager` component 
 | |
| > first. 
 | |
| > Also, namespaced migrations were introduced in Yii 2.0.10, so before using them consider updating your framework
 | |
| > installation version.
 | |
| > If you are using a Yii 2 version prior to 2.0.10, you'll have to copy the migrations located on 
 | |
| > `vendor/2amigos/yii2-usuario/src/User/Migration`, remove its namespaces and add it to your @app/migrations folder.
 | |
| 
 | |
| #### Step 3 - Configure
 | |
| 
 | |
| Once we have it installed, we have to configure it on your `config.php` file. 
 | |
| 
 | |
| 
 | |
| ```php 
 | |
| 'modules' => [
 | |
|     'user' => [
 | |
|         'class' => Da\User\Module::class,
 | |
|     ]
 | |
| ]
 | |
| ```
 | |
| 
 | |
| Configuration may differ from template to template, the following are some guidelines for sidekit app template and 
 | |
| the official Yii2 advanced application template: 
 | |
| 
 | |
| - [Sidekit Application Template](installation/sidekit-application-template.md)
 | |
| - [Advanced Application Template](installation/advanced-application-template.md)
 | |
| 
 | |
| See also all the possible configuration options available: 
 | |
| 
 | |
| - [Configuration Options](installation/configuration-options.md)
 | |
| - [RBAC](installation/rbac.md)
 | |
| - [Console Commands](installation/console-commands.md)
 | |
| - [Mailer](installation/mailer.md)
 | |
| - [Available Actions](installation/available-actions.md)
 | |
| 
 | |
| Enhancing and Overriding
 | |
| ------------------------
 | |
| 
 | |
| - [How to Enhance a User Model](enhancing-and-overriding/how-to-enhance-a-user-model.md)
 | |
| - [Overriding Classes](enhancing-and-overriding/overriding-classes.md) 
 | |
| - [Overriding Views](enhancing-and-overriding/overriding-views.md)
 | |
| 
 | |
| Events
 | |
| ------
 | |
| 
 | |
| Events are a good way to execute logic before and after certain processes. Yii2 Usuario comes with a huge list of them. 
 | |
| 
 | |
| The recommended way to make use of events is by creating a new file in your config folder (i.e. `events.php`), configure 
 | |
| there all your events and then include that file on your 
 | |
| [`entry script`](http://www.yiiframework.com/doc-2.0/guide-structure-entry-scripts.html). 
 | |
| 
 | |
| - [User Events](events/user-events.md)
 | |
| - [Form Events](events/form-events.md)
 | |
| - [Reset Password Events](events/reset-password-events.md)
 | |
| - [Social Network Authentication Events](events/social-network-auth-events.md)
 | |
| - [Social Network Connection Events](events/social-network-connect-events.md)
 | |
| 
 | |
| 
 | |
| Helpful Guides
 | |
| --------------
 | |
| 
 | |
| - [How to Add Captcha Widget](helpful-guides/how-to-add-captcha-widget.md)
 | |
| - [Separate Frontend and Backend Sessions](helpful-guides/separate-frontend-and-backend-sessions.md)
 | |
| - [Social Network Authentication](helpful-guides/social-network-authentication.md)
 | |
| 
 | |
| Contributing
 | |
| ------------
 | |
| 
 | |
| - [How to Contribute](contributing/how-to.md)
 | |
| - [Clean Code](contributing/clean-code.md)
 | |
| 
 | |
| © [2amigos](http://www.2amigos.us/) 2013-2017
 |