cinghie/yii2-user-extended

由 Dektrium 扩展 Yii2 User 功能的模块。

0.6.3 2021-11-29 16:03 UTC

README

License Latest Stable Version Latest Release Date Latest Commit Total Downloads

Yii2 User Extended:通过 Dektrium 扩展 Yii2 User:https://github.com/dektrium/yii2-user

这不是一个独立管理用户的模块,而是一个扩展 Yii2 User 扩展的模块。

安装

安装此扩展的首选方式是通过 composer

运行以下命令:

php composer.phar require cinghie/yii2-user-extended "*"

或者将此行添加到您的 composer.json 文件的 require 部分。

"cinghie/yii2-user-extended": "*"

配置

1. 图片文件夹

将 img 文件夹复制到您的 webroot。

2. 更新 yii2 用户数据库模式

确保您已正确配置 db 应用程序组件,并运行以下命令:

$ php yii migrate/up --migrationPath=@vendor/dektrium/yii2-user/migrations

3. 添加 Yii2 RBAC 迁移

添加到 common 配置文件

'components' => [
    'authManager' => [
        'class' => 'yii\rbac\DbManager',
    ],
]

'modules' => [
    'rbac' => 'dektrium\rbac\RbacWebModule',
],

并运行迁移

$ php yii migrate/up --migrationPath=@yii/rbac/migrations

4. 更新 yii2 用户扩展数据库模式

$ php yii migrate/up --migrationPath=@vendor/cinghie/yii2-user-extended/migrations

5. 设置配置文件

在配置文件的 modules 部分设置

'modules' =>  [
    // Yii2 RBAC
    'rbac' => [
        'class' => 'dektrium\rbac\Module'
    ],
    // Yii2 User
    'user' => [
        'class' => 'dektrium\user\Module',
        // Yii2 User Controllers Overrides
        'controllerMap' => [
            'admin' => 'cinghie\userextended\controllers\AdminController',
            'security' => 'cinghie\userextended\controllers\SecurityController',
            'settings' => 'cinghie\userextended\controllers\SettingsController'
        ],
        // Yii2 User Models Overrides
        'modelMap' => [
            'RegistrationForm' => 'cinghie\userextended\models\RegistrationForm',
            'Profile' => 'cinghie\userextended\models\Profile',
            'SettingsForm' => 'cinghie\userextended\models\SettingsForm',
            'User' => 'cinghie\userextended\models\User',
        ],
    ],
    // Yii2 User Extended
    'userextended' => [
        'class' => 'cinghie\userextended\Module',
        'avatarPath' => '@webroot/img/users/', // Path to your avatar files
        'avatarURL' => '@web/img/users/', // Url to your avatar files
        'defaultRole' => '', // example 'registered'
        'avatar' => true,
        'bio' => false,
        'captcha' => true,
        'birthday' => true,
        'firstname' => true,
        'gravatarEmail' => false,
        'lastname' => true,
        'location' => false,
        'onlyEmail' => false,
        'publicEmail' => false,
        'signature' => true,
        'templateLogin' => 'login_prestashop', // login or login_prestashop
        'templateLogoURL' => '@web/logo.png', // Url to logo
        'templateRegister' => '_two_column', // _one_column or _two_column
        'terms' => true,
        'website' => false,
        'showTitles' => true, // Set false in adminLTE
    ],
]

以及在 components 部分

'components' =>  [
    'view' => [
        'theme' => [
            'pathMap' => [
                '@dektrium/rbac/views/permission' => '@vendor/cinghie/yii2-user-extended/views/permission',  
                '@dektrium/rbac/views/role' => '@vendor/cinghie/yii2-user-extended/views/role',  
                '@dektrium/rbac/views/rule' => '@vendor/cinghie/yii2-user-extended/views/rule',  
                '@dektrium/user/views/admin' => '@vendor/cinghie/yii2-user-extended/views/admin',  
                '@dektrium/user/views/profile' => '@vendor/cinghie/yii2-user-extended/views/profile',  
                '@dektrium/user/views/role' => '@vendor/cinghie/yii2-user-extended/views/role',  
                '@dektrium/user/views/security' => '@vendor/cinghie/yii2-user-extended/views/adminlte/security',  
                '@dektrium/user/views/settings' => '@vendor/cinghie/yii2-user-extended/views/settings',  
            ],
        ],
    ],
]

如果您有 Yii2 App Advanced,请添加到 Yii2 User 模块配置中

'modules' =>  [

    'user' => [
        'class' => 'dektrium\user\Module',
        // restrict access to recovery and registration controllers from backend
        'as backend' => 'dektrium\user\filters\BackendFilter',
        // Settings
        'enableRegistration' => false,
    ],
    
],		

或使用 userextended 过滤器激活后端(dektrium 过滤器禁用它)

'modules' =>  [

    'user' => [
        'class' => 'dektrium\user\Module',
        // restrict access to recovery and registration controllers from backend
        'as backend' => 'cinghie\userextended\filters\BackendFilter',
        // Settings
        'enableRegistration' => false,
    ],

],

6. 在控制器中设置验证码

在 SiteController 中 actions() 函数中设置

'captcha' => [
    'class' => 'yii\captcha\CaptchaAction',
    'minLength' => 6,
    'maxLength' => 6
],

覆盖

覆盖控制器示例,在模块配置中

'modules' => [ 
	
	'userextended' => [ 
		'class' => 'cinghie\userextended\Module',
		'controllerMap' => [
			'items' => 'app\controllers\AdminController',
			'items' => 'app\controllers\SecurityController',
			'items' => 'app\controllers\SettingsController',
		]
	]
	
],

覆盖模型示例,在模块配置中

'modules' => [ 
	
	'userextended' => [ 
		'class' => 'cinghie\userextended\Module',
		'modelMap' => [
			'Account' => 'app\models\Account',
			'Assignment' => 'app\models\Assignment',
			'LoginForm' => 'app\models\LoginForm',
			'Permission' => 'app\models\Permission',
			'Profile' => 'app\models\Profile',
			'RegistrationForm' => 'app\models\RegistrationForm',
			'SettingsForm' => 'app\models\SettingsForm',
			'User' => 'app\models\User',
		]
	]
	
],

覆盖视图示例,在组件配置中

'components' => [ 

	'view' => [
		'theme' => [
			'pathMap' => [
				'@cinghie/userextended/views/admin' => '@app/views/userextended/admin',
			],
		],
	],
	
],

功能

  1. 向用户配置文件添加新字段(可选参数)
    • 头像
      1. 头像可以上传
      2. 头像可以更新
      3. 更新头像时,旧图像将被删除
    • 生日
    • 验证码
    • 姓名(名 + 姓)
    • 签名
    • 条款
  2. 将 yii2-user 字段添加到用户配置文件,如可选参数
    • 个人简介
    • gravatar 邮箱
    • 位置
    • 公开邮箱
    • 网站
  3. 在用户注册时添加默认角色