filsh/yii2-user

Yii 2 用户认证模块

维护者

详细信息

github.com/Filsh/yii2-user

源代码

安装: 88

依赖者: 0

建议者: 0

安全: 0

星标: 0

关注者: 2

分支: 104

类型:yii2-extension

1.0.0-beta 2014-04-17 19:23 UTC

This package is auto-updated.

Last update: 2024-08-29 03:52:46 UTC


README

Yii 2 用户 - 用户认证模块

演示

见此处

特性

  • 快速设置 - 直接使用即可查看其功能
  • 易于扩展(以下说明

  • 使用电子邮件和/或用户名注册
  • 使用电子邮件和/或用户名登录
  • 电子邮件确认(+重发功能)
  • 账户页面
    • 更新电子邮件、用户名和密码
    • 需要当前密码
  • 个人资料页面
    • 列出用户的自定义字段,例如,full_name
  • 密码恢复
  • 通过GridView进行Admin crud

安装

  • 使用您首选的方法安装Yii 2
  • 通过composer安装包 "filsh/yii2-user": "dev-master"
  • 更新配置文件 config/web.phpconfig/db.php
// app/config/web.php
return [
    'components' => [
        'user' => [
            'class' => 'filsh\yii2\user\components\User',
        ],
        'mail' => [
            // set up mail for emails
        ]
    ],
    'modules' => [
        'user' => [
            'class' => 'filsh\yii2\user\Module',
            // set custom module properties here ...
        ],
    ],
];
// app/config/db.php
return [
        'class' => 'yii\db\Connection',
        // set up db info
];
  • 运行迁移文件
    • php yii migrate --migrationPath=@vendor/filsh/yii2-user/migrations
  • 在浏览器中访问您的应用程序
    • http://localhost/pathtoapp/web/user
  • 使用neo/neo(请更改它!)作为管理员登录
  • 根据需要设置模块属性
  • 可选 - 更新主布局中的导航链接 app/views/layouts/main.php
// app/views/layouts/main.php
<?php
'items' => [
    ['label' => 'Home', 'url' => ['/site/index']],
    ['label' => 'About', 'url' => ['/site/about']],
    ['label' => 'Contact', 'url' => ['/site/contact']],
    ['label' => 'User', 'url' => ['/user']],
    Yii::$app->user->isGuest ?
        ['label' => 'Login', 'url' => ['/user/login']] :
        ['label' => 'Logout (' . Yii::$app->user->displayName . ')',
            'url' => ['/user/logout'],
            'linkOptions' => ['data-method' => 'post']],
],

开发

我如何检查用户权限?

此包包含一个非常简单的权限系统。每个用户都有一个角色,该角色具有数据库列形式的权限。它应遵循以下格式:can_{permission name}

例如,默认情况下,role表有一个名为can_admin的列。要检查用户是否可以执行管理操作

if (!Yii::$app->user->can("admin")) {
    throw new HttpException(403, 'You are not allowed to perform this action.');
}
// --- or ----
$user = User::findOne(1);
$user->can("admin");

根据需要添加更多数据库列以设置权限。如果您需要更强大的功能,请查看设置[RBAC](https://github.com/yiisoft/yii2/blob/master/docs/guide/authorization.md)。

注意:如果您设置了authManager组件以设置RBAC,则Yii::$app->user->can()将使用该组件而不是此模块的自定义role表。

我如何扩展此包?

您可以直接扩展类。根据您需要扩展的类,设置适当的配置属性

// app/config/web.php
'components' => [
    'user' => [
        'class' => 'app\components\MyUser',
    ],
],
'modules' => [
    'user' => [
        'class' => 'app\modules\MyModule',
        'controllerMap' => [
            'default' => 'app\controllers\MyDefaultController',
        ],
        'modelClasses'  => [
            'Profile' => 'app\models\MyProfile',
        ],
        'viewPath'      => '@app/views/user', // file example: @app/views/user/default/profile.php
        'emailViewPath' => '@app/mails',      // file example: @app/mails/confirmEmail.php
    ],
],

我需要更多控制。我能否仅扩展整个包?

您可以随时分支此包并根据需要修改它。

或者,如果您愿意,可以直接通过复制文件将包集成到您的应用程序中。这将使更新更困难,但同时也保证了在运行composer update后您的应用程序不会中断。

我已创建一个辅助命令来为您复制文件。

  • 将模块添加到您的config/console.php以访问命令(注意:这是控制台配置
// app/config/console.php
'modules' => [
    'user' => [
        'class' => 'filsh\yii2\user\Module',
    ],
],
php yii user/copy --from=@vendor/filsh/yii2-user/filsh/yii2/user --to=@app/modules/user --namespace=app\\modules\\user
  • 更新配置以指向您的新包
// app/config/web.php + app/config/console.php
'modules' => [
    'user' => [
        'class' => 'app\modules\user\Module',
    ],
],

或者,您可以手动操作。只需将文件复制/粘贴到您想要的位置,并更改文件中的命名空间。将 filsh\yii2\user 替换为 app\modules\user

更新日志

  • 2014/4/17 - 版本 1.0.0-beta

待办事项

  • 测试
  • 添加用户组功能(可能作为另一个包)
  • 问题/请求?请提交一个 GitHub 问题