andatech / yii2-user

用户模块的 Yii 2

安装: 184

依赖: 1

建议: 0

安全: 0

星星: 0

观察者: 2

分支: 2

开放问题: 1

类型:yii2-extension

1.0 2016-09-05 12:21 UTC

This package is not auto-updated.

Last update: 2024-09-24 22:31:37 UTC


README

安装

推荐通过 composer 安装此扩展。

运行以下命令之一

composer require andatech/yii2-user "dev-master"

或者

"andatech/yii2-user": "dev-master"

将以下内容添加到您的 composer.json 文件的 require 部分中。

使用方法

扩展安装完成后,只需在代码中通过以下方式使用它:

配置

    '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'],
            ...
        ],
        ...
    ],

迁移表:用户和资料

./yii migrate --migrationPath=@anda/user/migrations/

并且

./yii migrate --migrationPath=@yii/rbac/migrations/

可用操作列表

  • /user/regist/signup 显示注册表单
  • /user/auth/login 显示登录表单
  • /user/auth/logout 用户登出(仅通过 POST 方法可用)
  • /user/auth/request-password-reset 显示密码重置请求表单
  • /user/auth/reset-password 显示密码重置表单
  • /user/settings/profile 显示资料设置表单
  • /user/settings/account 显示账户设置表单
  • /user/settings/change-password 显示更改密码设置表单
  • /user/admin/index 显示用户管理界面

菜单示例

您可以根据以下方式添加注册、登录和登出链接

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

示例结果

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

示例结果

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
        (
        )

)