Skip to content

luyadev/luya-module-frontendgroup

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

Provides Group Permissions for Users in the CMS.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages