An error occurred while loading the file. Please try again.
-
Ghislain Loas authored
hotline #27346 edit patch_263 to remove storm dependencies + upgrade scripts/generate-permissions.php to be rerunable
651d97b4
generate-permissions.php 2.35 KiB
<?php
require 'console.php';
echo BASE_URL . "\n";
if(!Class_Permission::findAll()) {
echo "No permission in DB, stop script\n";
exit;
}
if (Class_UserGroup_Permission::countBy([])>0) {
echo "Usergroup permissions detected, stop script\n";
exit;
}
if(!$group_category = Class_UserGroupCategorie::findFirstBy(['libelle' => 'Droits d\'accès aux articles'])) {
$group_category = Class_UserGroupCategorie::newInstance(['libelle' => 'Droits d\'accès aux articles']);
$group_category->save();
}
$all_cms_permissions = Class_Permission::getCmsPermissions();
$redac_permissions = Class_Permission::findAllBy(['module' => 'ARTICLE', 'code' => ['ARTICLE' , 'PENDING', 'CATEGORY' ]]);
$redac_portail = addGroupFor(Class_Bib::getPortail(), ZendAfi_Acl_AdminControllerRoles::MODO_PORTAIL, 'Rédacteurs Portail' ,$group_category,$redac_permissions);
$admin_portail = addGroupFor(Class_Bib::getPortail(), ZendAfi_Acl_AdminControllerRoles::ADMIN_PORTAIL, 'Administrateurs Portail ' ,$group_category,$all_cms_permissions);
foreach(Class_Bib::findAll() as $library) {
addGroupFor($library,
ZendAfi_Acl_AdminControllerRoles::MODO_BIB,
'Rédacteurs ' . $library->getLibelle(),
$group_category,
$redac_permissions);
addGroupFor($library,
ZendAfi_Acl_AdminControllerRoles::ADMIN_BIB,
'Administrateurs ' . $library->getLibelle(),
$group_category,
$all_cms_permissions);
allow($redac_permissions,
$redac_portail,
$library);
allow($all_cms_permissions,
$admin_portail,
$library);
}
function addGroupFor($library, $level, $label, $categ,$permissions) {
if(!$group = Class_UserGroup::findFirstBy(['libelle' => $label,
'id_cat' => $categ->getId()]))
$group = Class_UserGroup::newInstance(['libelle' => $label,
'group_type' => Class_UserGroup::TYPE_DYNAMIC,
'role_level' => $level,
'library' => $library,
'categorie' => $categ]);
$group->addRight(Class_UserGroup::RIGHT_USER_ACCES_ARTICLES)
->addRight(Class_UserGroup::RIGHT_USER_PUBLICATION_DIRECTE)
->addRight(Class_UserGroup::RIGHT_USER_FILE_ACCESS)
->save();
allow($permissions,$group,$library);
return $group;
}
function allow($permissions,$group,$library) {
foreach($permissions as $permission)
$permission->permitTo($group, $library);
}