yii2-user
Installation
The preferred way to install this extension is through composer., (*1)
Either run, (*2)
composer require andatech/yii2-user "dev-master"
or add, (*3)
"andatech/yii2-user": "dev-master"
to the require section of your composer.json
file., (*4)
Usage
Once the extension is installed, simply use it in your code by :, (*5)
Config, (*6)
'modules' => [
...
'user' => [ //module id = 'user' only
'class' => 'anda\user\Module',
'loginBy' => 'db', //db or ldap
'userUploadDir' => '@uploads', //real path
'userUploadUrl' => '/uploads', //url path
'userUploadPath' => 'user', //path after upload directory
'admins' => ['admin', 'root'] //list username for manage users
],
...
],
'components' => [
...
'authManager' => [
'class' => 'yii\rbac\DbManager'
],
'user' => [
'identityClass' => 'anda\user\models\User',
'loginUrl' => ['/user/auth/login'],
...
],
...
],
Migration table user and profile, (*7)
./yii migrate --migrationPath=@anda/user/migrations/
And, (*8)
./yii migrate --migrationPath=@yii/rbac/migrations/
List of available actions
-
/user/regist/signup Displays registration form
-
/user/auth/login Displays login form
-
/user/auth/logout Logs the user out (available only via POST method)
-
/user/auth/request-password-reset Displays request password reset form
-
/user/auth/reset-password Displays reset password form
-
/user/settings/profile Displays profile settings form
-
/user/settings/account Displays account settings form
-
/user/settings/change-password Displays change password settings form
-
/user/admin/index Displays user management interface
You can add links to registration, login and logout as follows:, (*9)
Yii::$app->user->isGuest ?
['label' => 'Sign in', 'url' => ['/user/auth/login']] :
['label' => 'Sign out (' . Yii::$app->user->identity->username . ')',
'url' => ['/user/auth/logout'],
'linkOptions' => ['data-method' => 'post']],
['label' => 'Register', 'url' => ['/user/regist/signup'], 'visible' => Yii::$app->user->isGuest]
//Current user
$user = Yii::$app->user->identity;
print_r($user->profile->resultInfo);
//if use $user->profile->resultData in result = base user data
Example Result, (*10)
stdClass Object
(
[id] => 1
[username] => admin
[email] => admin@andatech.net
[created_at] => 1473135990
[updated_at] => 1473135990
[firstname] => Admin
[lastname] => āļŠāļđāļāļŠāļļāļ
[fullname] => Admin āļŠāļđāļāļŠāļļāļ
[avatar] => /uploads/user/avatars/57ce45f61e617_57ce45f60fb8b.jpg
[cover] => /assets/37f5d0d0/images/default-cover.jpg
[bio] =>
[data] => Not set
[roles] => Array
(
)
)
//another user
$user = \anda\user\models\User::findOne(2);
print_r($user->profile->resultInfo);
//if use $user->profile->resultData in result = base user data
Example Result, (*11)
stdClass Object
(
[id] => 2
[username] => surakit.c
[email] => surakit.c@psu.ac.th
[created_at] => 1473136616
[updated_at] => 1473136616
[firstname] => āļŠāļļāļĢāļāļīāļ
[lastname] => āļāļđāđāļāļ
[fullname] => āļŠāļļāļĢāļāļīāļ āļāļđāđāļāļ
[avatar] => /uploads/user/avatars/57ce4a3126b31_57ce4a31218d0.jpg
[cover] => /uploads/user/covers/57ce4a5bd842f_57ce4a5bd40bd.png
[bio] =>
[data] => Not set
[roles] => Array
(
)
)