diff --git a/modules/accountadmin/controllers/default.classic.php b/modules/accountadmin/controllers/default.classic.php index c172e07..0d38574 100644 --- a/modules/accountadmin/controllers/default.classic.php +++ b/modules/accountadmin/controllers/default.classic.php @@ -7,6 +7,16 @@ use Jelix\Authentication\Account\Manager; class defaultCtrl extends jControllerDaoCrud { + + public $pluginParams = array( + '*' => array( 'auth.required' => true), + 'index' => [ 'jacl2.right' => 'accountadmin.list'], + 'view' => [ 'jacl2.right' => 'accountadmin.account.view'], + 'create' => [ 'jacl2.right' => 'accountadmin.account.create'], + 'delete' => [ 'jacl2.right' => 'accountadmin.account.delete'], + 'update' => [ 'jacl2.right' => 'accountadmin.account.edit'], + ); + protected $dao = 'account~accounts'; protected $form = 'accountadmin~account_admin'; diff --git a/modules/accountadmin/install/install.php b/modules/accountadmin/install/install.php index babf1ea..37945b7 100644 --- a/modules/accountadmin/install/install.php +++ b/modules/accountadmin/install/install.php @@ -14,5 +14,14 @@ function install(\Jelix\Installer\Module\API\InstallHelpers $helpers) { jAcl2DbManager::createRight('my.right', 'accountadmin~acl.my.right', 'right.group.id'); jAcl2DbManager::addRight('admins', 'my.right'); // for admin group */ + $groupName = 'accountadmin.subject.group'; + // Add rights group + jAcl2DbManager::createRightGroup($groupName, 'accountadmin~accountadmin.rights.group.name'); + + $rights = ['list', 'account.view', 'account.edit', 'account.delete', 'account.create']; + foreach($rights as $r) { + // Add right subject + jAcl2DbManager::createRight('accountadmin.'.$r, 'accountadmin~accountadmin.right.'.$r, $groupName); + } } } diff --git a/modules/accountadmin/locales/en_US/account_admin.UTF-8.properties b/modules/accountadmin/locales/en_US/account_admin.UTF-8.properties index 19e148f..fdcd518 100644 --- a/modules/accountadmin/locales/en_US/account_admin.UTF-8.properties +++ b/modules/accountadmin/locales/en_US/account_admin.UTF-8.properties @@ -1,2 +1,9 @@ profile.th.account_id=Id profile.th.modify_date=Account's modification date + +rights.group.name=Accounts management +right.list=List accounts +right.account.view=View account detail +right.account.edit=Edit account +right.account.delete=Delete account +right.account.create=Create account diff --git a/modules/accountadmin/locales/fr_FR/account_admin.UTF-8.properties b/modules/accountadmin/locales/fr_FR/account_admin.UTF-8.properties index 074b3a2..0a81c07 100644 --- a/modules/accountadmin/locales/fr_FR/account_admin.UTF-8.properties +++ b/modules/accountadmin/locales/fr_FR/account_admin.UTF-8.properties @@ -1,2 +1,9 @@ profile.th.account_id=Id -profile.th.modify_date=Date de modification du compte \ No newline at end of file +profile.th.modify_date=Date de modification du compte + +rights.group.name=Gestion de comptes +right.list=Lister les comptes +right.account.view=Voir le detail d'un compte +right.account.edit=Modifier un compte +right.account.delete=Effacer un compte +right.account.create=Créer un compte diff --git a/test/testapp/modules/test/classes/adminui.listener.php b/test/testapp/modules/test/classes/adminui.listener.php index 63b0bfe..3882f20 100644 --- a/test/testapp/modules/test/classes/adminui.listener.php +++ b/test/testapp/modules/test/classes/adminui.listener.php @@ -44,7 +44,9 @@ function onAdminUILoading($event) { } $navigation = new SubMenu('nav', 'Navigation', 10); - $navigation->addJelixLinkItem('account', 'accountadmin~default:index', array(), 'users'); + if(\jAcl2::check('accountadmin.list')) { + $navigation->addJelixLinkItem('account', 'accountadmin~default:index', array(), 'users'); + } $navigation->addJelixLinkItem('index test', 'test~default:index', array(), 'circle-o'); $uim->sidebar()->addMenuItem($navigation); }