luyadev / luya-module-frontendgroup
Provide the ability to allow cms pages for specific user groups.
Installs: 358
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 5
Forks: 2
Type:luya-module
This package is auto-updated.
Last update: 2024-11-05 15:38:48 UTC
README
Frontend User Group Module
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 byfrontendUsers
. And you have to defined the available groups by usingfrontendGroups
. - The mentioned
frontendUsers
in the module must exists als component with the base classluya\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