luyadev/luya-module-frontendgroup

Provide the ability to allow cms pages for specific user groups.

1.0.0 2017-12-12 11:19 UTC

This package is auto-updated.

Last update: 2024-04-05 14:26:46 UTC


README

LUYA Logo

Frontend User Group Module

LUYA Latest Stable Version Total Downloads Slack Support

The main purpose of this module to provide the ability to allow cms pages for specific user groups. This can also be only one group with one users or different users in the same group or different groups with different users.

Installation

For the installation of modules Composer is required

composer require luyadev/luya-module-frontendgroup

Configuration

After adding to your composer json you have to include the frontendgroup module into your Yii/LUYA config of your project and bootstrap the Module (otherwhise it can not catch the menu before item event).

'modules' => [
    // ...
    'frontendgroup' => [
        'class' => 'luya\frontendgroup\Module',
        'frontendUsers' => [
            'user1', 'user2', 'user3',
        ],
        'frontendGroups' => [
            'groupA', 'groupB',
        ],
    ],
],

'bootstrap' => [
    // ...
    'frontendgroup',
],

'components' => [

    // ...

    'user1' => [
        'class' => 'luya\web\GroupUser',
        'identityClass' => 'app\models\User1Class',
    ],
    'user2' => [
        'class' => 'luya\web\GroupUser',
        'identityClass' => 'app\models\User2Class',
    ],
    'user3' => [
        'class' => 'luya\web\GroupUser',
        'identityClass' => 'app\models\User3Class',
    ],
]

The config above shows defines your configuration:

  • In the module frontendgroup you have to define the different users which are allowed in your setup by frontendUsers. And you have to defined the available groups by using frontendGroups.
  • The mentioned frontendUsers in the module must exists als component with the base class luya\web\GroupUser (this is a wrapper of yii\web\User).

The frontend users must follow the GroupUserIdentityInterface:

// GroupUserIdentityInterface implentation

class User1 extends \yii\db\ActiveRecord implements GroupUserIdentityInterface
{
    // ...
    
    public function authGroups()
    {
        return ['groupA', 'groupB'];
    }
    
    // ...
}

The the above user class of User1 is now allowed to access all pages which are defined for groupA and groupB.

Initialization

After successfully installation and configuration run the migrate, import and setup command to initialize the module in your project.

1.) Migrate your database.

./vendor/bin/luya migrate

2.) Import the module and migrations into your LUYA project.

./vendor/bin/luya import