filsh / yii2-user
Yii 2 用户认证模块
1.0.0-beta
2014-04-17 19:23 UTC
Requires
- yiisoft/yii2: *
This package is auto-updated.
Last update: 2024-08-29 03:52:46 UTC
README
Yii 2 用户 - 用户认证模块
演示
特性
- 快速设置 - 直接使用即可查看其功能
- 易于扩展(以下说明)
- 使用电子邮件和/或用户名注册
- 使用电子邮件和/或用户名登录
- 电子邮件确认(+重发功能)
- 账户页面
- 更新电子邮件、用户名和密码
- 需要当前密码
- 个人资料页面
- 列出用户的自定义字段,例如,full_name
- 密码恢复
- 通过GridView进行Admin crud
安装
// 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
命令。对于[基本](https://github.com/yiisoft/yii2-app-basic)应用程序,您可以在没有任何选项的情况下调用默认命令
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 问题