Commit 6080f5f9 authored by Antony Le Courtes's avatar Antony Le Courtes
Browse files

Ajout d'un privilège 'Enseignement - Edition en masse' pour pouvoir...

Ajout d'un privilège 'Enseignement - Edition en masse' pour pouvoir différencier l'affichage du bouton 'Saisi d'un nouvel enseignement' dans la partie gestion service, de la partie feuille de route de l'intervenant (#36390)
parent 9158c1d3
<?php
use BddAdmin\Bdd;
class MigrationPrivilegesServiceEditionMasse extends AbstractMigration
{
protected $contexte = self::CONTEXTE_POST;
public function description(): string
{
return "Ajout du privileges edition des services en masse au niveau des rôles nécessaires";
}
public function utile(): bool
{
//test si le privilege edition-masse existe
$bdd = $this->manager->getBdd();
$sql = "SELECT
p.id
FROM privilege p
JOIN categorie_privilege cp ON cp.id = p.categorie_id AND cp.code = 'enseignement'
WHERE p.code = 'edition-masse'";
$privilege = $bdd->select($sql);
if (!empty($privilege)) {
return false;
}
return true;
}
public function action(string $contexte)
{
if ($contexte == self::CONTEXTE_PRE) {
$this->before();
} else {
$this->after();
}
}
protected function before()
{
}
protected function after()
{
$oa = $this->manager->getOseAdmin();
$bdd = $this->manager->getBdd();
$console = $this->manager->getOseAdmin()->getConsole();
$sqlPrivilegeEditionMasse = "
SELECT
p.id id,
p.code code
FROM
privilege p
JOIN
categorie_privilege cp ON p.categorie_id = cp.id
WHERE
cp.code = 'enseignement'
AND
p.code = 'edition-masse'
";
$privilege = $bdd->select($sqlPrivilegeEditionMasse, [], ['fetch' => Bdd::FETCH_ONE]);
$privilegeId = $privilege['ID'];
if (!empty($privilegeId)) {
$sql = "
INSERT INTO role_privilege rp (role_id, privilege_id)
SELECT r.id, $privilegeId FROM role r
JOIN role_privilege rp ON rp.role_id = r.id AND rp.privilege_id = (
SELECT p.id FROM privilege p
JOIN categorie_privilege cp ON cp.id = p.categorie_id AND cp.code = 'enseignement'
WHERE p.code = 'edition')
";
$bdd->exec($sql);
$console->println("Privilege 'Edition en masse' ajouté sur les rôles nécessaires", CONSOLE::COLOR_GREEN);
} else {
$console->println("Privilege 'Edition en masse' non trouvé en base", CONSOLE::COLOR_GREEN);
}
//Clear cache car on a modifié les privileges donc les entity en cache ne doivent plus servir
$oa->run('clear-cache');
}
}
\ No newline at end of file
......@@ -121,6 +121,7 @@ return [
'privileges' => [
'visualisation' => 'Visualisation',
'edition' => 'Édition',
'edition-masse' => 'Édition en masse',
'exterieur' => 'Saisie de service dans une autre autre université',
'validation' => 'Validation',
'devalidation' => 'Dévalidation',
......
......@@ -215,7 +215,7 @@ class ServiceController extends AbstractController
$intervenant = $role->getIntervenant() ?: $this->getEvent()->getParam('intervernant');
/* @var $intervenant Intervenant */
$canAddService = $this->isAllowed(Privileges::getResourceId(Privileges::ENSEIGNEMENT_EDITION));
$canAddService = $this->isAllowed(Privileges::getResourceId(Privileges::ENSEIGNEMENT_EDITION_MASSE));
$annee = $this->getServiceContext()->getAnnee();
$action = $this->getRequest()->getQuery('action', null);
$tri = null;
......@@ -412,7 +412,7 @@ class ServiceController extends AbstractController
}
$this->getProcessusPlafond()->beginTransaction();
foreach ($services as $service) {
$service->setTypeVolumeHoraire($realise);
if ($this->isAllowed($service, Privileges::ENSEIGNEMENT_EDITION)) {
......
......@@ -104,6 +104,7 @@ class Privileges extends \UnicaenAuth\Provider\Privilege\Privileges
const DROIT_AFFECTATION_VISUALISATION = 'droit-affectation-visualisation';
const ENSEIGNEMENT_DEVALIDATION = 'enseignement-devalidation';
const ENSEIGNEMENT_EDITION = 'enseignement-edition';
const ENSEIGNEMENT_EDITION_MASSE = 'enseignement-edition-masse';
const ENSEIGNEMENT_EXPORT_CSV = 'enseignement-export-csv';
const ENSEIGNEMENT_EXPORT_PDF = 'enseignement-export-pdf';
const ENSEIGNEMENT_EXTERIEUR = 'enseignement-exterieur';
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment