thyseus/yii-user-management

yii 框架的用户管理模块集合

dev-master 2016-09-15 10:51 UTC

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/installhttp://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问题追踪器,谢谢!

享受这个模块。