PHP code example of buga1234 / module-user-management

1. Go to this page and download the library: Download buga1234/module-user-management library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

buga1234 / module-user-management example snippets



'components'=> [
    'user' => [
        'class' => 'buga1234\modules\UserManagement\components\UserConfig',
		    // Comment this if you don't want to record user logins
		    'on afterLogin' => function($event) {
				\buga1234\modules\UserManagement\models\UserVisitLog::newVisitor($event->identity->id);
	    }
	],
],

'modules'=>[
	'user-management' => [
		'class' => 'buga1234\modules\UserManagement\UserManagementModule',

		// 'enableRegistration' => true,

		// Add regexp validation to passwords. Default pattern does not restrict user and can enter any set of characters.
		// The example below allows user to enter :
		// any set of characters
		// (?=\S{8,}): of at least length 8
		// (?=\S*[a-z]): containing at least one lowercase letter
		// (?=\S*[A-Z]): and at least one uppercase letter
		// (?=\S*[\d]): and at least one number
		// $: anchored to the end of the string

		//'passwordRegexp' => '^\S*(?=\S{8,})(?=\S*[a-z])(?=\S*[A-Z])(?=\S*[\d])\S*$',
		

		// Here you can set your handler to change layout for any controller or action
		// Tip: you can use this event in any module
		'on beforeAction'=>function(yii\base\ActionEvent $event) {
				if ( $event->action->uniqueId == 'user-management/auth/login' )
				{
					$event->action->controller->layout = 'loginLayout.php';
				};
			},
	],
],



'modules'=>[
	'user-management' => [
		'class' => 'buga1234\modules\UserManagement\UserManagementModule',
	        'controllerNamespace'=>'vendor\buga1234\modules\UserManagement\controllers', // To prevent yii help from crashing
	],
],



./yii migrate --migrationPath=vendor/buga1234/module-user-management/migrations/



public function behaviors()
{
	return [
		'ghost-access'=> [
			'class' => 'buga1234\modules\UserManagement\components\GhostAccessControl',
		],
	];
}




use buga1234\modules\UserManagement\components\GhostMenu;
use buga1234\modules\UserManagement\UserManagementModule;

echo GhostMenu::widget([
	'encodeLabels'=>false,
	'activateParents'=>true,
	'items' => [
		[
			'label' => 'Backend routes',
			'items'=>UserManagementModule::menuItems()
		],
		[
			'label' => 'Frontend routes',
			'items'=>[
				['label'=>'Login', 'url'=>['/user-management/auth/login']],
				['label'=>'Logout', 'url'=>['/user-management/auth/logout']],
				['label'=>'Registration', 'url'=>['/user-management/auth/registration']],
				['label'=>'Change own password', 'url'=>['/user-management/auth/change-own-password']],
				['label'=>'Password recovery', 'url'=>['/user-management/auth/password-recovery']],
				['label'=>'E-mail confirmation', 'url'=>['/user-management/auth/confirm-email']],
			],
		],
	],
]);

public $freeAccess = true;


public $freeAccessActions = ['first-action', 'another-action'];



User::hasRole($roles, $superAdminAllowed = true)
User::hasPermission($permission, $superAdminAllowed = true)
User::canRoute($route, $superAdminAllowed = true)

User::assignRole($userId, $roleName)
User::revokeRole($userId, $roleName)

User::getCurrentUser($fromSingleton = true)



Role::create($name, $description = null, $groupCode = null, $ruleName = null, $data = null)
Role::addChildren($parentName, $childrenNames, $throwException = false)
Role::removeChildren($parentName, $childrenNames)



'modules'=>[
	'user-management' => [
		'class' => 'buga1234\modules\UserManagement\UserManagementModule',
		'on afterRegistration' => function(UserAuthEvent $event) {
			// Here you can do your own stuff like assign roles, send emails and so on
		},
	],
],