2017 © Pedro PelΓ‘ez
 

yii2-extension yii2-user

Yii2 user module

image

lowbase/yii2-user

Yii2 user module

  • Sunday, May 8, 2016
  • by lowbase
  • Repository
  • 3 Watchers
  • 8 Stars
  • 925 Installations
  • PHP
  • 2 Dependents
  • 0 Suggesters
  • 4 Forks
  • 1 Open issues
  • 5 Versions
  • 2 % Grown

The README.md

ΠœΠΎΠ΄ΡƒΠ»ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ

Yii2-user - нСзависимый ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΈΠ· ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚Π° lowBase с панСлью администрирования ΠΈ ΠΏΠΎΠ»Π½Ρ‹ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΠΎΠΌ возмоТностСй., (*1)

  • Авторизация ΠΈ рСгистрация ΠΏΠΎ Email (с ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ)
  • Авторизация ΠΈ рСгистрация Ρ‡Π΅Ρ€Π΅Π· ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ сСти
  • ВосстановлСниС пароля Ρ‡Π΅Ρ€Π΅Π· Email
  • Максимально ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ
  • АдминистрированиС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹ΠΉ поиск ΠΏΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌ
  • Π‘Ρ‚Ρ€Π°Π½Ρ‹ ΠΈ Π³ΠΎΡ€ΠΎΠ΄Π° (Π‘Π°Π·Π° Π’ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π΅) ΠΈ привязка профиля ΠΊ Π½ΠΈΠΌ
  • Π Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ€ΠΎΠ»Π΅ΠΉ ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠΌΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ систСмы допусков, наслСдования ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»
  • Π’ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ, фиксирования Online, привязка профиля ΠΊ ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ сСтям (для ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ Π²Ρ…ΠΎΠ΄Π°)
  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΌΡƒΠ»ΡŒΡ‚ΠΈΡΠ·Ρ‹Ρ‡Π½ΠΎΡΡ‚ΠΈ
  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° кастомных ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ шаблонов писСм Π±Π΅Π· наслСдований

Установка

php composer.phar require --prefer-dist lowbase/yii2-user "*"

ΠΈΠ»ΠΈ, (*2)

"lowbase/yii2-user": "*"

Настройка ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°

//-----------------------
// ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ
//-----------------------

'user' => [
    'identityClass' => 'lowbase\user\models\User',
    'enableAutoLogin' => true,
    'loginUrl' => ['/login'],
    'on afterLogin' => function($event) {
        lowbase\user\models\User::afterLogin($event->identity->id);
    }
],

//--------------------------------------------------------
// ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ OAUTH для Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ‡Π΅Ρ€Π΅Π· ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ сСти,
// Π³Π΄Π΅ Π²ΠΌΠ΅Ρ‚ΠΎ ? ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ послС рСгистрации
// клиСнтский ID ΠΈ сСкрСтный ΠΊΠ»ΡŽΡ‡.
// Π’ коммСнтария ΡƒΠΊΠ°Π·Π°Π½Ρ‹ ссылки для рСгистрации ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ
// Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… сСтях.
//--------------------------------------------------------

'authClientCollection' => [
   'class' => 'yii\authclient\Collection',
   'clients' => [
       'vkontakte' => [
           // https://vk.com/editapp?act=create
           'class' => 'lowbase\user\components\oauth\VKontakte',
           'clientId' => '?',
           'clientSecret' => '?',
           'scope' => 'email'
       ],
       'google' => [
           // https://console.developers.google.com/project
           'class' => 'lowbase\user\components\oauth\Google',
           'clientId' => '?',
           'clientSecret' => '?',
       ],
       'twitter' => [
            // https://dev.twitter.com/apps/new
           'class' => 'lowbase\user\components\oauth\Twitter',
           'consumerKey' => '?',
           'consumerSecret' => '?',
       ],
       'facebook' => [
            // https://developers.facebook.com/apps
           'class' => 'lowbase\user\components\oauth\Facebook',
           'clientId' => '?',
           'clientSecret' => '?',
       ],
       'github' => [
            // https://github.com/settings/applications/new
           'class' => 'lowbase\user\components\oauth\GitHub',
           'clientId' => '?',
           'clientSecret' => '?',
           'scope' => 'user:email, user'
       ],
       'yandex' => [
            // https://oauth.yandex.ru/client/new
           'class' => 'lowbase\user\components\oauth\Yandex',
           'clientId' => '?',
           'clientSecret' => '?',
       ],
   ],
],

//---------------------------------------------
// Для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ раздСлСния ΠΏΡ€Π°Π² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ
// с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ€ΠΎΠ±ΠΎΡ‡Π½ΠΎΠ³ΠΎ модуля Yii2 RBAC.
//---------------------------------------------

'authManager' => [
    'class' => 'yii\rbac\DbManager',
    'itemTable' => 'lb_auth_item',
    'itemChildTable' => 'lb_auth_item_child',
    'assignmentTable' => 'lb_auth_assignment',
    'ruleTable' => 'lb_auth_rule'
],

//-------------------------------------------------
// ΠŸΡ€ΠΎΠΏΠΈΡΡ‹Π²Π°Π΅ΠΌ ΠΏΡ€Π°Π²ΠΈΠ»Π° Ρ€ΠΎΡƒΡ‚ΠΈΠ½Π³Π° для ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ…
// дСйствий с ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.
//-------------------------------------------------

'urlManager' => [
   'enablePrettyUrl' => true,
   'showScriptName' => false,
   'rules' => [
       //ВзаимодСйствия с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ Π½Π° сайтС
       '<action:(login|logout|signup|confirm|reset|profile|remove|online)>' => 'lowbase-user/user/<action>',
       //ВзаимодСйствия с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ Π² ΠΏΠ°Π½Π΅Π»ΠΈ админстрирования
       'admin/user/<action:(index|update|delete|view|rmv|multidelete|multiactive|multiblock)>' => 'lowbase-user/user/<action>',
       //Авторизация Ρ‡Π΅Ρ€Π΅Π· ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ сСти
       'auth/<authclient:[\w\-]+>' => 'lowbase-user/auth/index',
       //ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ
       'user/<id:\d+>' => 'lowbase-user/user/show',
       //ВзаимодСйствия со странами Π² ΠΏΠ°Π½Π΅Π»ΠΈ админстрирования
       'admin/country/<action:(index|create|update|delete|view|multidelete)>' => 'lowbase-user/country/<action>',
       //Поиск насСлСнного ΠΏΡƒΠ½ΠΊΡ‚Π° (Π³ΠΎΡ€ΠΎΠ΄Π°)
       'city/find' => 'lowbase-user/city/find',
       //ВзаимодСйствия с Π³ΠΎΡ€ΠΎΠ΄Π°ΠΌΠΈ Π² ΠΏΠ°Π½Π΅Π»ΠΈ администрирования
       'admin/city/<action:(index|create|update|delete|view|multidelete)>' => 'lowbase-user/city/<action>',
       //Π Π°Π±ΠΎΡ‚Π° с ролями ΠΈ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΏΡ€Π°Π² доступа
       'admin/role/<action:(index|create|update|delete|view|multidelete)>' => 'lowbase-user/auth-item/<action>',
       //Π Π°Π±ΠΎΡ‚Π° с ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌΠΈ контроля доступа
       'admin/rule/<action:(index|create|update|delete|view|multidelete)>' => 'lowbase-user/auth-rule/<action>',
   ],
],

//-----------------------
// ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ сами ΠΌΠΎΠ΄ΡƒΠ»ΠΈ
//-----------------------

'modules' => [
   'gridview' =>  [
       'class' => '\kartik\grid\Module'
   ],
   'lowbase-user' => [
       'class' => '\lowbase\user\Module',
   ],
],

Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅!!!

Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ модуля lowbase-user Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅. Π’.ΠΊ. ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρ‹ модуля ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ унаслСдованы Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ (для кастомизации) ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ captchaAction ΠΈ baseAuthUrl для работоспособности ΠΊΠ°ΠΏΡ‡ΠΈ ΠΈ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ‡Π΅Ρ€Π΅Π· соц. сСти., (*3)

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ† Π‘Π”

ЗапускаСм ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:, (*4)

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

ΠœΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈ Π·Π°ΠΏΠΎΠ»Π½ΡΡŽΡ‚ ΠΈΡ… прСдустановлСнными значСниями ΠΏΠΎ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΡƒ. Π˜Π·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ установлСны 2 Ρ€ΠΎΠ»ΠΈ: Администратор ΠΈ ΠΌΠΎΠ΄Π΅Ρ€Π°Ρ‚ΠΎΡ€:, (*5)

//Администратор ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ
const ADMIN_FIRST_NAME = 'Имя_администратора';
const ADMIN_LAST_NAME = 'Ѐамилия_администратора';
const ADMIN_EMAIL = 'admin@example.ru';
const ADMIN_PASSWORD = 'admin';

//ΠœΠΎΠ΄Π΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ
const MODERATOR_FIRST_NAME = 'Имя_ΠΌΠΎΠ΄Π΅Ρ€Π°Ρ‚ΠΎΡ€Π°';
const MODERATOR_LAST_NAME = 'Ѐамилия_ΠΌΠΎΠ΄Π΅Ρ€Π°Ρ‚ΠΎΡ€Π°';
const MODERATOR_EMAIL = 'moderator@example.ru';
const MODERATOR_PASSWORD = 'moderator';

Π’Π°Π±Π»ΠΈΡ†Ρ‹ страны ΠΈ Π³ΠΎΡ€ΠΎΠ΄Π° Π±ΡƒΠ΄ΡƒΡ‚ пустыми. Если Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΈΡ… записями ΠΈΠ· Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π’ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π΅, Ρ‚ΠΎ для этого ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ Π² Π±Π°Π·Ρƒ Ρ„Π°ΠΉΠ» ΠΈΠ· ΠΏΠ°ΠΏΠΊΠΈ с миграциями:, (*6)

dump_city.sql

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ страниц модуля

'modules' => [
    'user' => [
        'class' => '\lowbase\user\Module',
        'customViews' => [
            // МСняСм стандартноС ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ профиля
            'login' => '@app/views/user/profile'
        ]
    ],
],
// ДопустимыС отобраТСния для кастомизации:
//
// signup - рСгистрация
// login - авторизация
// profile - ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒ
// repass - восстановлСниС пароля
// show - просмотр ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ
// confirmEmail - шаблон письма подтвСрТдСния Email
// passwordResetToken - шаблон письма сброса пароля

Запуск Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ²

use lowbase\user\components\LoginWidget;
use lowbase\user\components\OnlineWidget;
use lowbase\user\components\AuthKeysManager;
use lowbase\user\components\AuthChoice;

// Π’ΠΈΠ΄ΠΆΠ΅Ρ‚ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ (с ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ΠΌΠΈ ΠΈΠΊΠΎΠ½ΠΊΠ°ΠΌΠΈ соц. сСтСй)
= LoginWidget::widget(['oauth' => false]) ?>

// Π’ΠΈΠ΄ΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‰ΠΈΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Online (с установкой Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ опроса 300 сСкунд)
= OnlineWidget::widget(['time' => 300]) ?>

// Π’ΠΈΠ΄ΠΆΠ΅Ρ‚ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ‡Π΅Ρ€Π΅Π· ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ сСти
= AuthChoice::widget([['baseAuthUrl' => ['/lowbase-user/auth/index']]]) ?>

// Π’ΠΈΠ΄ΠΆΠ΅Ρ‚ привязки ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… сСтСй ΠΊ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŽ
 = AuthKeysManager::widget(['baseAuthUrl' => ['/lowbase-user/auth/index']]) ?>

The Versions

05/04 2016

1.0.1

1.0.1.0

Yii2 user module

  Sources   Download

BSD-3-Clause

The Requires

 

by Yuri Shekhovtsov

user extension yii2 module

29/03 2016

1.0.0

1.0.0.0

Yii2 user module

  Sources   Download

BSD-3-Clause

The Requires

 

by Yuri Shekhovtsov

user extension yii2 module