thyseus / yii-user-management
yii 框架的用户管理模块集合
Requires
- php: >=5.3.0
- yiisoft/yii: >=1.1.14
This package is auto-updated.
Last update: 2024-09-13 21:15:42 UTC
README
yii 框架的用户管理模块集合 >= 1.1.14
提示:对于 Yii2,我强烈建议使用 dektrium/yii2-user 模块:https://github.com/dektrium/yii2-user .
特性
- 演示项目 (https://github.com/thyseus/yii-user-management-demo)
- 安装程序(可能将被迁移取代)
- 用户管理
- 角色管理
- 混合身份验证已捆绑并易于集成,请参阅 user/docs/hybridauth.txt。
- 集成所有混合身份验证和混合身份验证额外包的提供者:AOL、Google、Mail.ru、Plurk、Tumblr、Yahoo、Disqus、Identica、Murmur、px500、TwitchTV、Yandex、Facebook、Instagram、MySpace、QQ、Twitter、Foursquare、LastFM、Odnoklassniki、Sina、Viadeo、GitHub、LinkedIn、OpenID、Skyrock、Vimeo、Goodreads、Live、Pixnet、Steam、Vkontakte
- 混合 RBAC 和 ACL 的权限系统(请参阅 user/docs)
- 配置文件 & 配置文件历史 & 配置文件评论 & 配置文件字段管理
- 消息系统(用户之间发送/接收消息)子模块
- 用户组(用户可以添加新组,其他用户可以加入)
- 用户头像上传
- 用户注册
- 密码恢复
- 友谊系统
- 邮件组件(用户可以选择通过电子邮件接收哪些消息)
- 基础语言:英语
- 完整的德语和法语翻译
- 由于 bigchirv@gmail.com 的帮助,西班牙语的翻译几乎完整
- 俄语和波兰语的翻译不完全
与演示应用程序一起使用
从 0.9 版本开始,这里有一个演示应用程序可用
https://github.com/thyseus/yii-user-management-demo
使用 composer 安装
- 将 yii 用户管理添加到您的项目需求中
php composer.phar require thyseus/yii-user-management
- 将供应商文件夹添加到您的 yii 配置中的别名
array(
'aliases' => array(
'vendor' => '/path/to/vendor',
),
),
手动安装说明
-
Yii 用户管理模块需要 mysql 数据库连接才能工作。
-
将包克隆到您的项目 modules/ 目录中
$ cd protected/modules
$ git clone https://github.com/thyseus/yii-user-management
- Yii-user-management 模块包含子模块,您已将其提取到应用程序的 modules/user 目录中。您可以删除所有不需要的子模块。将文件上移一个文件夹,使其位于您的 modules/ 文件夹中
$ mv user/* .
(optional: remove demo application)
$ rm -rf index.php composer.json hybridauth.php controllers views
$ [youreditor] protected/config/main.php
添加以下行
'modules' => array(
'user' => array(
'debug' => true,
)
),
调试选项对于安装和开发期间非常有用。在生产环境中运行时,应设置为 false。
- 为了让您的 Web 应用程序使用用户管理模块的认证方法,我们需要在您的应用程序配置中用 YumWebUser 覆盖默认的 CWebUser 组件
'components'=>array(
'user'=>array(
'class' => 'application.modules.user.components.YumWebUser',
'allowAutoLogin'=>true,
'loginUrl' => array('//user/user/login'),
[...]
),
'import'=>array(
'application.modules.user.models.*',
[...]
这告诉我们的 Web 应用程序,即使不在 modules/user 环境中,也可以访问 'User' 模型。在您的代码中调用 User::hasRole($role) 检查已登录用户是否属于该角色时,需要此功能。这已在详细文档中解释。最好让此行作为第一个包含的模型出现,这样您就可以在您的应用程序 models/ 目录中扩展 User-Model。
- 请确保在您的应用程序 components 部分设置一个缓存组件。Yum 依赖于它。如果您不想使用缓存,请添加
'components' => array(
'cache' => array('class' => 'system.caching.CDummyCache'),
在您的 config/main.php 的 components 部分中。
另请参阅有关Yii中缓存的一些一般信息的https://yiiframework.cn/doc/guide/1.1/en/caching.overview。
- 在您的Web浏览器中运行用户管理安装程序
http://localhost/testdrive/index.php/user/install 或 http://localhost/testdrive/index.php?r=user/install
具体取决于您的URL路由设置。
- 现在应该会出现用户管理模块的安装程序。在右侧,您可以设置模块使用的备用表名。在大多数情况下,这不需要,您可以保留这些设置。如果您更改了这些设置,请确保在应用程序配置中设置正确的表名,以便用户模块可以访问它们。
点击“安装模块”。点击后,安装脚本将创建模块(s)所需的数据库表。然后,它将显示需要进行的必要修改。将您需要的模块添加到由安装脚本提供的config/main.php中的应用程序配置中。您还可以删除不需要使用的Yum模块。
-
恭喜,您已成功安装用户管理模块!让我们稍微整理一下
-
以admin/admin的身份登录,并导航到index.php?r=user/user/admin。这是您的用户管理管理面板。单击“管理您的用户”。现在您被带到用户管理模块的默认前端登录屏幕。使用用户名admin和密码admin登录。
-
单击您的管理员用户的“更新图标”(铅笔)。将密码更改为比“admin”更安全的密码。点击保存。
-
如果您还没有这样做,请从应用程序配置中删除“debug”=>“true”行,以防止在安装过程中意外覆盖您的新数据。
新安装的用户管理模块配置
语言
Yii-用户管理模块使用应用程序配置中设置的语言。例如,您可以在config/main.php中添加
'language' => 'de',
以获取德语文本。目前支持英语、德语、法语和波兰语。
快速登录小部件
如果您想在Web应用程序的某个地方显示快速登录小部件,只需在视图文件中调用
widget('application.modules.user.components.LoginWidget'); ?>密码要求
您可以在模块的'passwordRequirements'选项中设置密码要求,例如
'user' => array( 'passwordRequirements' => array( 'minLen' => 4, 'maxLen' => 16, 'maxRepetition' => 2, 'minDigits' => 3, ),
请参阅components/CPasswordValidator.php以了解可能的密码要求选项
用户注册
将模块配置中的变量'enableActivationConfirmation'设置为false,以允许用户注册您的应用程序而无需接收/单击通过电子邮件发送的确认链接。
角色管理
您可以在角色管理器中添加新的角色。为了检查对这些角色的访问权限,您可以在Yii应用程序的任何地方使用此代码片段。它很可能用于控制器中的ACL过滤器。
if(Yii::app()->user->can('action'))
{
// user is allowed
}
else
{
// user is not allowed to do this
}
有关如何设置Yii用户管理模块的日志记录功能的详细信息,请参阅文件user/docs/logging.txt。
接下来去哪里?
有一些示例说明如何扩展Yii用户管理模块以及如何实现特定项目的功能。请参阅user/docs/目录中的所有文件。
请参阅user/docs/hybridauth.txt,了解如何使用与yii-user-management捆绑的出色的hybrid auth框架。
常见问题解答(FAQ)
问:运行安装程序时出现异常
答:请确保从任何会话中注销。清除您的cookies,以确保您不再在Web应用程序中登录。
问:出现错误信息:“CWebUser没有名为“isAdmin”的方法”
答:请确保您的应用程序配置中包含以下内容
'components'=>array(
'user'=>array(
'class' => 'application.modules.user.components.YumWebUser',
问:我收到错误信息:“无法在数据库中找到活动记录类“YumUser”的表“{{users}}”。”
答:请确保您的应用程序配置中包含以下内容
'db'=>array(
'tablePrefix' => '',
[...]
问:为什么yii-user-management没有子模块?
答:yii支持子模块,但像application.modules.user.modules.role.controllers.YumRoleController这样的路径看起来确实很奇怪,所以我们决定最好将所有模块都保存在根目录的modules/目录中。
问:在安装时出现以下错误:一般错误:2014 无法在其他未缓冲的查询活动时执行查询
答:感谢NetDabbler,有一个解决方案
在YumInstallController.php中注释以下行 // $sql = file_get_contents(Yii::getPathOfAlias('application.modules.user.docs') . '/yum_translation.sql'); // $db->createCommand($sql)->execute();
手动在cmd窗口中插入翻译数据,如下:mysql -u yourusername -p testyum < docs/yum_translation.sql
问:我仍然收到错误!
答:请确保在您的config/main.php中启用缓存组件,至少是CDummyCache。
'cache' => array( 'class' => 'system.caching.CDummyCache', ),
问:我仍然收到错误!
答:尝试在您的config/main.php中添加以下内容
'session' => array(
'sessionName' => 'SiteSession',
'class' => 'CHttpSession',
'autoStart' => true,
),
文档存储在user/docs目录中。请阅读user/docs/install.txt以获取安装说明。
请务必阅读文档,因为安装此模块并不完全简单。文档末尾还有一个常见错误FAQ。
将所有问题报告给github问题追踪器,谢谢!
享受这个模块。