From cba255f52ccba9ccb60a77fa2d09ea2a62bb2cef Mon Sep 17 00:00:00 2001 From: afornerot Date: Fri, 13 Dec 2019 16:14:58 +0100 Subject: [PATCH 1/7] =?UTF-8?q?caract=C3=A8re=20interdit=20dans=20nom=20de?= =?UTF-8?q?=20groupe=20(fixes=20#61)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/Cadoles/CoreBundle/Command/data/core-init-01.sql | 2 +- .../Cadoles/CoreBundle/Controller/GroupController.php | 7 +++++++ .../Cadoles/CoreBundle/Controller/Niveau01Controller.php | 9 ++++++++- .../Cadoles/CoreBundle/Controller/Niveau02Controller.php | 7 +++++++ .../src/Cadoles/CoreBundle/Controller/UserController.php | 2 +- .../CoreBundle/Resources/views/Group/edit.html.twig | 3 +++ .../CoreBundle/Resources/views/Niveau01/edit.html.twig | 4 ++++ .../CoreBundle/Resources/views/Niveau02/edit.html.twig | 4 ++++ 8 files changed, 35 insertions(+), 3 deletions(-) diff --git a/src/ninegate-1.0/src/Cadoles/CoreBundle/Command/data/core-init-01.sql b/src/ninegate-1.0/src/Cadoles/CoreBundle/Command/data/core-init-01.sql index f9f396ff..ec9460ac 100644 --- a/src/ninegate-1.0/src/Cadoles/CoreBundle/Command/data/core-init-01.sql +++ b/src/ninegate-1.0/src/Cadoles/CoreBundle/Command/data/core-init-01.sql @@ -8,7 +8,7 @@ INSERT IGNORE INTO `niveau01` (`id`, `label`, `siren`) VALUES (-100, 'DRAAF', '130007107'); INSERT IGNORE INTO `user` (`id`, `niveau01_id`, `username`, `firstname`, `lastname`, `password`, `email`, `avatar`, `role`,`siren`,`authlevel`) VALUES -(-100, -100, 'admin', 'Administrateur', 'draaf', '{SSHA}aTs3IqgN93ehIEqy93uWTTyxg5wNa+80 +(-100, -100, 'admin', 'Administrateur', 'draaf', '{SSHA}W19NNpFWpdE/5tLu1a2+Fw2KWVZfpZpy ', 'admin@ldapbundle.ac-arno.fr', 'admin.jpg', 'ROLE_ADMIN', '130007107', 'simple'); diff --git a/src/ninegate-1.0/src/Cadoles/CoreBundle/Controller/GroupController.php b/src/ninegate-1.0/src/Cadoles/CoreBundle/Controller/GroupController.php index c0a40dd6..f26ac5df 100644 --- a/src/ninegate-1.0/src/Cadoles/CoreBundle/Controller/GroupController.php +++ b/src/ninegate-1.0/src/Cadoles/CoreBundle/Controller/GroupController.php @@ -1037,6 +1037,13 @@ class GroupController extends Controller $tmp=$this->getEntityBy("CadolesCoreBundle:Niveau02","label",$data->getLabel()); if($tmp) $form->addError(new FormError('Un niveau de rang 02 utilise déjà ce label')); + // On s'assure que le label ne contient pas des caractères speciaux + $string = preg_replace('~[^@a-zA-Z0-9._-]~', '', $data->getLabel()); + if($string!=$data->getLabel()) + { + $form->addError(new FormError('Caractères interdit dans ce label')); + } + if($data->getFgcanshare()&&is_null($data->getPagetemplate())) $form->addError(new FormError("Un groupe de travail doit avoir un modèle de page d'accueil")); } diff --git a/src/ninegate-1.0/src/Cadoles/CoreBundle/Controller/Niveau01Controller.php b/src/ninegate-1.0/src/Cadoles/CoreBundle/Controller/Niveau01Controller.php index 4e08c28b..e5f5f40f 100644 --- a/src/ninegate-1.0/src/Cadoles/CoreBundle/Controller/Niveau01Controller.php +++ b/src/ninegate-1.0/src/Cadoles/CoreBundle/Controller/Niveau01Controller.php @@ -273,7 +273,7 @@ class Niveau01Controller extends Controller if($data->getNiveau02s()->count() > 0) { $form->addError(new FormError('Un niveau de rang 02 utilise ce niveau de rang 01 : suppression impossible')); - } + } } if ($form->get('submit')->isClicked() && ($mode=="submit" || $mode=="update")) { @@ -282,6 +282,13 @@ class Niveau01Controller extends Controller $tmp=$this->getEntityBy("CadolesCoreBundle:Niveau02","label",$data->getLabel()); if($tmp) $form->addError(new FormError('Un niveau de rang 02 utilise déjà ce label')); + + // On s'assure que le label ne contient pas des caractères speciaux + $string = preg_replace('~[^@a-zA-Z0-9._-]~', '', $data->getLabel()); + if($string!=$data->getLabel()) + { + $form->addError(new FormError('Caractères interdit dans ce label')); + } } if ($form->get('submit')->isClicked() && !$form->isValid()) { diff --git a/src/ninegate-1.0/src/Cadoles/CoreBundle/Controller/Niveau02Controller.php b/src/ninegate-1.0/src/Cadoles/CoreBundle/Controller/Niveau02Controller.php index f05fd500..4a39c44a 100644 --- a/src/ninegate-1.0/src/Cadoles/CoreBundle/Controller/Niveau02Controller.php +++ b/src/ninegate-1.0/src/Cadoles/CoreBundle/Controller/Niveau02Controller.php @@ -267,6 +267,13 @@ class Niveau02Controller extends Controller $tmp=$this->getEntityBy("CadolesCoreBundle:Niveau01","label",$data->getLabel()); if($tmp) $form->addError(new FormError('Un niveau de rang 01 utilise déjà ce label')); + + // On s'assure que le label ne contient pas des caractères speciaux + $string = preg_replace('~[^@a-zA-Z0-9._-]~', '', $data->getLabel()); + if($string!=$data->getLabel()) + { + $form->addError(new FormError('Caractères interdit dans ce label')); + } } if ($form->get('submit')->isClicked() && !$form->isValid()) { diff --git a/src/ninegate-1.0/src/Cadoles/CoreBundle/Controller/UserController.php b/src/ninegate-1.0/src/Cadoles/CoreBundle/Controller/UserController.php index 0c50a841..42521c91 100644 --- a/src/ninegate-1.0/src/Cadoles/CoreBundle/Controller/UserController.php +++ b/src/ninegate-1.0/src/Cadoles/CoreBundle/Controller/UserController.php @@ -654,7 +654,7 @@ class UserController extends Controller $fields=$this->getDefaultDatauser(); // Si un acces modo via console d'admin on s'assure qu'il a les droit dessus sinon retour à la liste - if($this->isGranted('ROLE_MODO')&&$access=="config") { + if($this->isGranted('ROLE_MODO')) { $niveau01=$data->getNiveau01(); $modos=$this->get('security.token_storage')->getToken()->getUser()->getmodos(); $fgperm=false; diff --git a/src/ninegate-1.0/src/Cadoles/CoreBundle/Resources/views/Group/edit.html.twig b/src/ninegate-1.0/src/Cadoles/CoreBundle/Resources/views/Group/edit.html.twig index 25f8f093..56c9d576 100755 --- a/src/ninegate-1.0/src/Cadoles/CoreBundle/Resources/views/Group/edit.html.twig +++ b/src/ninegate-1.0/src/Cadoles/CoreBundle/Resources/views/Group/edit.html.twig @@ -45,6 +45,9 @@
{% if form.label is defined %} {{ form_row(form.label) }} +
+ Caractères interdits = accent, espace, caractères spéciaux sauf @ . - _
+
{% if form.fgassoc is defined %} {% if masteridentity=="LDAP" %} diff --git a/src/ninegate-1.0/src/Cadoles/CoreBundle/Resources/views/Niveau01/edit.html.twig b/src/ninegate-1.0/src/Cadoles/CoreBundle/Resources/views/Niveau01/edit.html.twig index 759a25be..ebc256bd 100755 --- a/src/ninegate-1.0/src/Cadoles/CoreBundle/Resources/views/Niveau01/edit.html.twig +++ b/src/ninegate-1.0/src/Cadoles/CoreBundle/Resources/views/Niveau01/edit.html.twig @@ -40,6 +40,10 @@
{{ form_row(form.label) }} +
+ Caractères interdits = accent, espace, caractères spéciaux sauf @ . - _
+
+ {{ form_row(form.siren) }} {{ form_row(form.showsubappname) }} {% if masteridentity=="LDAP" %} diff --git a/src/ninegate-1.0/src/Cadoles/CoreBundle/Resources/views/Niveau02/edit.html.twig b/src/ninegate-1.0/src/Cadoles/CoreBundle/Resources/views/Niveau02/edit.html.twig index e0619b3b..a73677c3 100755 --- a/src/ninegate-1.0/src/Cadoles/CoreBundle/Resources/views/Niveau02/edit.html.twig +++ b/src/ninegate-1.0/src/Cadoles/CoreBundle/Resources/views/Niveau02/edit.html.twig @@ -41,6 +41,10 @@
{{ form_row(form.niveau01) }} {{ form_row(form.label) }} +
+ Caractères interdits = accent, espace, caractères spéciaux sauf @ . - _
+
+ {{ form_row(form.siret) }} {{ form_row(form.postaladress) }}
From 6741bfffe60dd775aab638e86e911dbd7fcd309d Mon Sep 17 00:00:00 2001 From: afornerot Date: Fri, 13 Dec 2019 16:27:44 +0100 Subject: [PATCH 2/7] bouton add en premier (fixes #60) --- .../Controller/PagewidgetController.php | 2 +- .../views/Pagewidget/viewinfo.html.twig | 65 +++++++++---------- 2 files changed, 33 insertions(+), 34 deletions(-) diff --git a/src/ninegate-1.0/src/Cadoles/PortalBundle/Controller/PagewidgetController.php b/src/ninegate-1.0/src/Cadoles/PortalBundle/Controller/PagewidgetController.php index 2ac3c000..0a850723 100644 --- a/src/ninegate-1.0/src/Cadoles/PortalBundle/Controller/PagewidgetController.php +++ b/src/ninegate-1.0/src/Cadoles/PortalBundle/Controller/PagewidgetController.php @@ -1907,7 +1907,7 @@ class PagewidgetController extends Controller // Render return $this->render($this->labelentity.':viewinfo.html.twig', [ 'entity' => $entity, - 'canadd' => ($user), + 'canadd' => $canupdate, 'canupdate' => $canupdate, 'usage' => $usage, 'icon' => $icon, diff --git a/src/ninegate-1.0/src/Cadoles/PortalBundle/Resources/views/Pagewidget/viewinfo.html.twig b/src/ninegate-1.0/src/Cadoles/PortalBundle/Resources/views/Pagewidget/viewinfo.html.twig index 311557fd..c8a245c7 100644 --- a/src/ninegate-1.0/src/Cadoles/PortalBundle/Resources/views/Pagewidget/viewinfo.html.twig +++ b/src/ninegate-1.0/src/Cadoles/PortalBundle/Resources/views/Pagewidget/viewinfo.html.twig @@ -28,7 +28,6 @@
{% endif %} -{% set canadd = false %}
{% set style = "margin: auto; display: inherit;background-color:transparent;" %} {% if icon %} @@ -50,46 +49,46 @@ {%if usage=="group" %}
-
- {% for member in members %} +
+ + {% if canadd==true %}
+ {% endif %} + + {% for member in members %} +
+
+
{% endfor %} - {% if canadd==true %} - - {% endif %} +
{% endif %}
From 6729035f1501e3102a3dcdfc8ae2119b4fbdd580 Mon Sep 17 00:00:00 2001 From: afornerot Date: Fri, 13 Dec 2019 16:52:12 +0100 Subject: [PATCH 3/7] =?UTF-8?q?alert=20profil=C3=A9e=20par=20niveau01=20(f?= =?UTF-8?q?ixes=20#62)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Cadoles/CoreBundle/Entity/Niveau01.php | 38 ++++++++++++++++ .../CoreBundle/Resources/public/css/style.css | 6 +-- .../public/themes/transnum/style.css | 7 --- .../Controller/AlertController.php | 5 ++- .../Controller/PagewidgetController.php | 23 ++++++++++ .../src/Cadoles/PortalBundle/Entity/Alert.php | 44 +++++++++++++++++++ .../Cadoles/PortalBundle/Form/AlertType.php | 19 ++++++++ .../Resources/views/Alert/edit.html.twig | 1 + 8 files changed, 131 insertions(+), 12 deletions(-) diff --git a/src/ninegate-1.0/src/Cadoles/CoreBundle/Entity/Niveau01.php b/src/ninegate-1.0/src/Cadoles/CoreBundle/Entity/Niveau01.php index d4dfeca3..d822d2c7 100644 --- a/src/ninegate-1.0/src/Cadoles/CoreBundle/Entity/Niveau01.php +++ b/src/ninegate-1.0/src/Cadoles/CoreBundle/Entity/Niveau01.php @@ -91,6 +91,10 @@ class Niveau01 */ protected $items; + /** + * @ORM\ManyToMany(targetEntity="Cadoles\PortalBundle\Entity\Alert", mappedBy="niveau01s") + */ + protected $alerts; /** * Constructor @@ -427,4 +431,38 @@ class Niveau01 { return $this->items; } + + /** + * Add alert + * + * @param \Cadoles\PortalBundle\Entity\Alert $alert + * + * @return Niveau01 + */ + public function addAlert(\Cadoles\PortalBundle\Entity\Alert $alert) + { + $this->alerts[] = $alert; + + return $this; + } + + /** + * Remove alert + * + * @param \Cadoles\PortalBundle\Entity\Alert $alert + */ + public function removeAlert(\Cadoles\PortalBundle\Entity\Alert $alert) + { + $this->alerts->removeElement($alert); + } + + /** + * Get alerts + * + * @return \Doctrine\Common\Collections\Collection + */ + public function getAlerts() + { + return $this->alerts; + } } diff --git a/src/ninegate-1.0/src/Cadoles/CoreBundle/Resources/public/css/style.css b/src/ninegate-1.0/src/Cadoles/CoreBundle/Resources/public/css/style.css index f02d6c5f..025a599e 100644 --- a/src/ninegate-1.0/src/Cadoles/CoreBundle/Resources/public/css/style.css +++ b/src/ninegate-1.0/src/Cadoles/CoreBundle/Resources/public/css/style.css @@ -274,7 +274,7 @@ span.item-drag { .grid-item .item-link img { display: block; max-width: 100%; - max-height: 110px; + //max-height: 110px; height: auto; } @@ -500,7 +500,7 @@ a.item-heart { word-wrap: break-word; width: 100%; display: block; - line-height: initial; + line-height: 14px; padding: 0px; } @@ -513,9 +513,9 @@ a.item-heart { .grid .grid-preview .grid-item-title small { margin-bottom: 10px; + font-size:9px; } - @media (max-width: 991px) { .grid .grid-preview { width:32.666666667%; diff --git a/src/ninegate-1.0/src/Cadoles/CoreBundle/Resources/public/themes/transnum/style.css b/src/ninegate-1.0/src/Cadoles/CoreBundle/Resources/public/themes/transnum/style.css index b3a9bf7e..47bfc2fb 100644 --- a/src/ninegate-1.0/src/Cadoles/CoreBundle/Resources/public/themes/transnum/style.css +++ b/src/ninegate-1.0/src/Cadoles/CoreBundle/Resources/public/themes/transnum/style.css @@ -64,14 +64,7 @@ body.simple { min-width: 138px; } -.grid .grid-preview .grid-item-title { - font-size:14px; - line-height: 8px; -} -.grid .grid-preview .grid-item-title small { - font-size:9px; -} .widget-bordered .grid-preview img { border-radius: 0px; diff --git a/src/ninegate-1.0/src/Cadoles/PortalBundle/Controller/AlertController.php b/src/ninegate-1.0/src/Cadoles/PortalBundle/Controller/AlertController.php index 875cfddf..74c2800f 100644 --- a/src/ninegate-1.0/src/Cadoles/PortalBundle/Controller/AlertController.php +++ b/src/ninegate-1.0/src/Cadoles/PortalBundle/Controller/AlertController.php @@ -69,7 +69,7 @@ class AlertController extends Controller $data = new Alert(); // Création du formulaire - $form = $this->createForm(AlertType::class,$data,array("mode"=>"submit")); + $form = $this->createForm(AlertType::class,$data,array("mode"=>"submit","labelniveau01" => $this->GetParameter("labelsniveau01"))); // Récupération des data du formulaire $form->handleRequest($request); @@ -111,7 +111,8 @@ class AlertController extends Controller // Création du formulaire $form = $this->createForm(AlertType::class,$data,array( - "mode" => "update" + "mode" => "update", + "labelniveau01" => $this->GetParameter("labelsniveau01") )); // Récupération des data du formulaire diff --git a/src/ninegate-1.0/src/Cadoles/PortalBundle/Controller/PagewidgetController.php b/src/ninegate-1.0/src/Cadoles/PortalBundle/Controller/PagewidgetController.php index 0a850723..187e21f7 100644 --- a/src/ninegate-1.0/src/Cadoles/PortalBundle/Controller/PagewidgetController.php +++ b/src/ninegate-1.0/src/Cadoles/PortalBundle/Controller/PagewidgetController.php @@ -737,6 +737,7 @@ class PagewidgetController extends Controller // Profilage $user=$this->getUser(); $roles=($user?$user->getRoles():["ROLE_ANONYME"]); + $niveau01=($user?$user->getNiveau01():null); $groups=($user?$user->getGroups():[]); // Initialisation du calcul des alerts @@ -765,6 +766,28 @@ class PagewidgetController extends Controller } } + // Récupération par Niveau01 + $qb = $em->createQueryBuilder(); + $qb->select('alert') + ->from("CadolesPortalBundle:Alert", 'alert') + ->where(":niveau01 MEMBER OF alert.niveau01s") + ->andWhere('alert.publishedat <= :today') + ->andWhere($qb->expr()->orX( + $qb->expr()->gt('alert.unpublishedat', ':today'), + $qb->expr()->isNull('alert.unpublishedat') + )) + ->setParameter("niveau01",$niveau01) + ->setParameter('today', date('Y-m-d')); + + if($idalertcategory && $alertcategoryfilter) { + $qb->andWhere("alert.alertcategory=:alertcategory") + ->setParameter("alertcategory",$alertcategoryfilter); + } + $alertsniveau01s=$qb->getQuery()->getResult(); + foreach($alertsniveau01s as $alertsniveau01) { + if(!$alerts->contains($alertsniveau01s)) $alerts->add($alertsniveau01); + } + // Récupération des alerts par group foreach($groups as $group) { $qb = $em->createQueryBuilder(); diff --git a/src/ninegate-1.0/src/Cadoles/PortalBundle/Entity/Alert.php b/src/ninegate-1.0/src/Cadoles/PortalBundle/Entity/Alert.php index f8cf6ecb..fef762ef 100644 --- a/src/ninegate-1.0/src/Cadoles/PortalBundle/Entity/Alert.php +++ b/src/ninegate-1.0/src/Cadoles/PortalBundle/Entity/Alert.php @@ -82,6 +82,16 @@ class Alert */ protected $groups; + /** + * @ORM\ManyToMany(targetEntity="Cadoles\CoreBundle\Entity\Niveau01", inversedBy="alerts", cascade={"persist"}) + * @ORM\JoinTable(name="alertniveau01", + * joinColumns={@ORM\JoinColumn(name="alert", referencedColumnName="id")}, + * inverseJoinColumns={@ORM\JoinColumn(name="niveau01", referencedColumnName="id")} + * ) + */ + protected $niveau01s; + + // Is Online public function isOnline() { @@ -346,4 +356,38 @@ class Alert { return $this->groups; } + + /** + * Add niveau01 + * + * @param \Cadoles\CoreBundle\Entity\Niveau01 $niveau01 + * + * @return Alert + */ + public function addNiveau01(\Cadoles\CoreBundle\Entity\Niveau01 $niveau01) + { + $this->niveau01s[] = $niveau01; + + return $this; + } + + /** + * Remove niveau01 + * + * @param \Cadoles\CoreBundle\Entity\Niveau01 $niveau01 + */ + public function removeNiveau01(\Cadoles\CoreBundle\Entity\Niveau01 $niveau01) + { + $this->niveau01s->removeElement($niveau01); + } + + /** + * Get niveau01s + * + * @return \Doctrine\Common\Collections\Collection + */ + public function getNiveau01s() + { + return $this->niveau01s; + } } diff --git a/src/ninegate-1.0/src/Cadoles/PortalBundle/Form/AlertType.php b/src/ninegate-1.0/src/Cadoles/PortalBundle/Form/AlertType.php index 3499e4c1..30fb1c57 100644 --- a/src/ninegate-1.0/src/Cadoles/PortalBundle/Form/AlertType.php +++ b/src/ninegate-1.0/src/Cadoles/PortalBundle/Form/AlertType.php @@ -57,6 +57,24 @@ class AlertType extends AbstractType "disabled" => ($options["mode"]=="delete"?true:false), ]) + ->add('niveau01s', Select2EntityType::class, [ + 'label' => 'Visible pour les '.$options["labelniveau01"], + 'class' => 'CadolesCoreBundle:Niveau01', + 'text_property' => 'label', + 'multiple' => true, + 'remote_route' => 'cadoles_core_ajax_niveau01_list', + 'primary_key' => 'id', + 'text_property' => 'label', + 'minimum_input_length' => 0, + 'page_limit' => 100, + 'allow_clear' => true, + 'delay' => 250, + 'cache' => false, + 'cache_timeout' => 60000, + 'language' => 'fr', + 'placeholder' => 'Selectionner des '.$options["labelniveau01"], + ]) + ->add('groups', Select2EntityType::class, [ 'label' => 'Visible pour les Groupes', 'class' => 'CadolesCoreBundle:Group', @@ -106,6 +124,7 @@ class AlertType extends AbstractType $resolver->setDefaults([ 'data_class' => 'Cadoles\PortalBundle\Entity\Alert', 'mode' => "string", + 'labelniveau01' => "string", ]); } } diff --git a/src/ninegate-1.0/src/Cadoles/PortalBundle/Resources/views/Alert/edit.html.twig b/src/ninegate-1.0/src/Cadoles/PortalBundle/Resources/views/Alert/edit.html.twig index 28b40742..676478c3 100755 --- a/src/ninegate-1.0/src/Cadoles/PortalBundle/Resources/views/Alert/edit.html.twig +++ b/src/ninegate-1.0/src/Cadoles/PortalBundle/Resources/views/Alert/edit.html.twig @@ -60,6 +60,7 @@
{{ form_row(form.roles) }} + {{ form_row(form.niveau01s) }} {{ form_row(form.groups) }}
From 84da7e7dddf05b6c0cc22bb20058f3ebc354e064 Mon Sep 17 00:00:00 2001 From: afornerot Date: Mon, 16 Dec 2019 14:25:25 +0100 Subject: [PATCH 4/7] svg --- .../CoreBundle/Command/data/core-init-01.sql | 2 +- .../CronBundle/Command/InitDataCommand.php | 23 +++++++++++++++++++ tmpl/ninegate-template.yml | 1 + 3 files changed, 25 insertions(+), 1 deletion(-) diff --git a/src/ninegate-1.0/src/Cadoles/CoreBundle/Command/data/core-init-01.sql b/src/ninegate-1.0/src/Cadoles/CoreBundle/Command/data/core-init-01.sql index ec9460ac..9dd73405 100644 --- a/src/ninegate-1.0/src/Cadoles/CoreBundle/Command/data/core-init-01.sql +++ b/src/ninegate-1.0/src/Cadoles/CoreBundle/Command/data/core-init-01.sql @@ -8,7 +8,7 @@ INSERT IGNORE INTO `niveau01` (`id`, `label`, `siren`) VALUES (-100, 'DRAAF', '130007107'); INSERT IGNORE INTO `user` (`id`, `niveau01_id`, `username`, `firstname`, `lastname`, `password`, `email`, `avatar`, `role`,`siren`,`authlevel`) VALUES -(-100, -100, 'admin', 'Administrateur', 'draaf', '{SSHA}W19NNpFWpdE/5tLu1a2+Fw2KWVZfpZpy +(-100, -100, 'admin', 'Administrateur', 'draaf', '{SSHA}XeJxoO2l4dkHFX78WQ1Ik30sjLt3kffh ', 'admin@ldapbundle.ac-arno.fr', 'admin.jpg', 'ROLE_ADMIN', '130007107', 'simple'); diff --git a/src/ninegate-1.0/src/Cadoles/CronBundle/Command/InitDataCommand.php b/src/ninegate-1.0/src/Cadoles/CronBundle/Command/InitDataCommand.php index 5c4600d2..592d3fca 100644 --- a/src/ninegate-1.0/src/Cadoles/CronBundle/Command/InitDataCommand.php +++ b/src/ninegate-1.0/src/Cadoles/CronBundle/Command/InitDataCommand.php @@ -83,6 +83,29 @@ class InitDataCommand extends ContainerAwareCommand $entity->setJsonargument('{"simulate":"false"}'); $this->entityManager->persist($entity); } + + // Job synchronisation onlyoffice + // Toute les 1h // Désactivé par défaut + $widonlyoffice_sync = $this->getContainer()->getParameter('widonlyoffice_sync'); + $entity = $this->entityManager->getRepository('CadolesCronBundle:Cron')->find(105); + if(!$entity&&$widonlyoffice_sync) { + $entity = new Cron; + $nextdate=$entity->getSubmitdate(); + $nextdate->setTime(3,0); + $entity->setCommand("Core:Only"); + $entity->setDescription("Synchronisation des Only Office"); + $entity->setId(105); + $entity->setRepeatcall(0); + $entity->setRepeatexec(0); + $entity->setRepeatinterval(3600); + $entity->setNextexecdate($entity->getSubmitdate()); + $entity->setJsonargument('{"simulate":"false"}'); + $this->entityManager->persist($entity); + } + elseif($entity&&!$widonlyoffice_sync) { + $this->entityManager->remove($entity); + } + // Job purge des registrations obsolètes // Toute les 5mn $entity = $this->entityManager->getRepository('CadolesCronBundle:Cron')->find(110); diff --git a/tmpl/ninegate-template.yml b/tmpl/ninegate-template.yml index 45615033..86b4a5ed 100644 --- a/tmpl/ninegate-template.yml +++ b/tmpl/ninegate-template.yml @@ -300,6 +300,7 @@ parameters: %end if %else activate_widonlyoffice: false + widonlyoffice_sync: false %end if %if %%getVar("ninegate_activate_widopensondage", 'non') == "oui" From fbea5bcccb83cc06c22d28ccae2d6c11ce316ea5 Mon Sep 17 00:00:00 2001 From: afornerot Date: Mon, 16 Dec 2019 15:29:06 +0100 Subject: [PATCH 5/7] =?UTF-8?q?url=20limesurvey=20par=20d=C3=A9faut=20sur?= =?UTF-8?q?=20admin=20(fixes=20#64)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CoreBundle/Resources/config/services.yml | 26 +++++++++++++++++++ .../CronBundle/Command/CronCommand.php | 3 ++- .../CronBundle/Controller/CronController.php | 2 ++ .../PortalBundle/Command/InitDataCommand.php | 2 +- 4 files changed, 31 insertions(+), 2 deletions(-) diff --git a/src/ninegate-1.0/src/Cadoles/CoreBundle/Resources/config/services.yml b/src/ninegate-1.0/src/Cadoles/CoreBundle/Resources/config/services.yml index 8e9b06e9..9cf7290a 100644 --- a/src/ninegate-1.0/src/Cadoles/CoreBundle/Resources/config/services.yml +++ b/src/ninegate-1.0/src/Cadoles/CoreBundle/Resources/config/services.yml @@ -1,4 +1,28 @@ services: + Cadoles\CoreBundle\Command\InitDataCommand: + tags: + - { name: 'console.command', command: 'Core:InitData' } + + Cadoles\CoreBundle\Command\OnlyCommand: + tags: + - { name: 'console.command', command: 'Core:Only' } + + Cadoles\CoreBundle\Command\PurgeFileCommand: + tags: + - { name: 'console.command', command: 'Core:PurgeFile' } + + Cadoles\CoreBundle\Command\PurgeRegistrationCommand: + tags: + - { name: 'console.command', command: 'Core:PurgeRegistration' } + + Cadoles\CoreBundle\Command\SetPasswordCommand: + tags: + - { name: 'console.command', command: 'Core:SetPassword' } + + Cadoles\CoreBundle\Command\SynchroCommand: + tags: + - { name: 'console.command', command: 'Core:Synchro' } + cadoles.core.session.listener: public: true class: Cadoles\CoreBundle\EventListener\sessionListener @@ -135,4 +159,6 @@ services: class: Cadoles\CoreBundle\Service\samlAttributeMapperService + + \ No newline at end of file diff --git a/src/ninegate-1.0/src/Cadoles/CronBundle/Command/CronCommand.php b/src/ninegate-1.0/src/Cadoles/CronBundle/Command/CronCommand.php index 16f254d0..b772dbcb 100644 --- a/src/ninegate-1.0/src/Cadoles/CronBundle/Command/CronCommand.php +++ b/src/ninegate-1.0/src/Cadoles/CronBundle/Command/CronCommand.php @@ -30,7 +30,7 @@ class CronCommand extends ContainerAwareCommand protected function execute(InputInterface $input, OutputInterface $output) { - $entityManager = $this->getContainer()->get('doctrine')->getEntityManager(); + $entityManager = $this->getContainer()->get('doctrine')->getManager(); $this->output = $output; $this->filesystem = new Filesystem(); @@ -105,6 +105,7 @@ class CronCommand extends ContainerAwareCommand $parameter = new ArrayInput($jsonparameter); // Executer la commande + $returnCode=false; try{ $returnCode = $command->run($parameter, $output); diff --git a/src/ninegate-1.0/src/Cadoles/CronBundle/Controller/CronController.php b/src/ninegate-1.0/src/Cadoles/CronBundle/Controller/CronController.php index 722f4fa9..55f80111 100644 --- a/src/ninegate-1.0/src/Cadoles/CronBundle/Controller/CronController.php +++ b/src/ninegate-1.0/src/Cadoles/CronBundle/Controller/CronController.php @@ -141,6 +141,8 @@ class CronController extends Controller public function execAction(Request $request, $id) { + set_time_limit(0); + $em = $this->getDoctrine()->getManager(); $entity = $em->getRepository($this->labelentity)->find($id); diff --git a/src/ninegate-1.0/src/Cadoles/PortalBundle/Command/InitDataCommand.php b/src/ninegate-1.0/src/Cadoles/PortalBundle/Command/InitDataCommand.php index 682dfaa3..5b4fd08b 100644 --- a/src/ninegate-1.0/src/Cadoles/PortalBundle/Command/InitDataCommand.php +++ b/src/ninegate-1.0/src/Cadoles/PortalBundle/Command/InitDataCommand.php @@ -422,7 +422,7 @@ class InitDataCommand extends ContainerAwareCommand // Item Limesurvey if($activate_widlimesurvey) { - $widlimesurvey_url =$this->getContainer()->getParameter('widlimesurvey_url'); + $widlimesurvey_url =$this->getContainer()->getParameter('widlimesurvey_url')."/admin"; $entityItem = $em->getRepository('CadolesPortalBundle:Item')->find(-374); if(!$entityItem) { $entityicon = $em->getRepository('CadolesPortalBundle:Icon')->findoneby(["label"=>"uploads/icon/icon_limesurvey.png"]); From c702a4b0d2490992056bf6aa7af0b1a2f8439016 Mon Sep 17 00:00:00 2001 From: afornerot Date: Mon, 16 Dec 2019 16:07:10 +0100 Subject: [PATCH 6/7] ajout colonne metier et fonction (fixes #20) --- .../Controller/ConfigController.php | 28 +++++++++++++++++++ .../CoreBundle/Controller/UserController.php | 18 ++++++++++++ .../CoreBundle/Resources/config/routing.yml | 8 ++++++ .../Resources/views/Config/datauser.html.twig | 10 +++++++ .../Resources/views/User/list.html.twig | 10 +++++-- 5 files changed, 72 insertions(+), 2 deletions(-) diff --git a/src/ninegate-1.0/src/Cadoles/CoreBundle/Controller/ConfigController.php b/src/ninegate-1.0/src/Cadoles/CoreBundle/Controller/ConfigController.php index c0ee499c..6326ccf9 100755 --- a/src/ninegate-1.0/src/Cadoles/CoreBundle/Controller/ConfigController.php +++ b/src/ninegate-1.0/src/Cadoles/CoreBundle/Controller/ConfigController.php @@ -185,7 +185,18 @@ class ConfigController extends Controller $response->headers->set('Content-Type', 'application/json'); return $response; } + + public function datauserdefaultAction(Request $request) + { + $em = $this->getDoctrine()->getManager(); + $config=$em->getRepository('CadolesCoreBundle:Config')->find("datauser"); + $config->setValue(""); + $em->persist($config); + $em->flush(); + return $this->redirectToRoute('cadoles_core_config_datauser'); + } + public function datauserAction(Request $request) { $em = $this->getDoctrine()->getManager(); @@ -282,6 +293,17 @@ class ConfigController extends Controller ]); } + public function datausersdefaultAction(Request $request) + { + $em = $this->getDoctrine()->getManager(); + $config=$em->getRepository('CadolesCoreBundle:Config')->find("datausers"); + $config->setValue(""); + $em->persist($config); + $em->flush(); + + return $this->redirectToRoute('cadoles_core_config_datausers'); + } + public function datausersAction(Request $request) { $em = $this->getDoctrine()->getManager(); @@ -315,6 +337,12 @@ class ConfigController extends Controller $fields["group"]["perm"]=1; $fields["group"]["label"]="Groupes"; + $fields["job"]["perm"]=1; + $fields["job"]["label"]="Métier"; + + $fields["position"]["perm"]=1; + $fields["position"]["label"]="Fonction"; + $fields["role"]["perm"]=1; $fields["role"]["label"]="Rôles"; diff --git a/src/ninegate-1.0/src/Cadoles/CoreBundle/Controller/UserController.php b/src/ninegate-1.0/src/Cadoles/CoreBundle/Controller/UserController.php index 42521c91..cf58984c 100644 --- a/src/ninegate-1.0/src/Cadoles/CoreBundle/Controller/UserController.php +++ b/src/ninegate-1.0/src/Cadoles/CoreBundle/Controller/UserController.php @@ -214,6 +214,14 @@ class UserController extends Controller break; case 10 : + $qb->orderBy('user.job',$order[0]["dir"]); + break; + + case 11 : + $qb->orderBy('user.position',$order[0]["dir"]); + break; + + case 12 : $qb->orderBy('user.role',$order[0]["dir"]); break; } @@ -245,6 +253,14 @@ class UserController extends Controller break; case 8 : + $qb->orderBy('user.job',$order[0]["dir"]); + break; + + case 9 : + $qb->orderBy('user.position',$order[0]["dir"]); + break; + + case 10 : $qb->orderBy('user.role',$order[0]["dir"]); break; } @@ -279,6 +295,8 @@ class UserController extends Controller array_push($tmp,$data->getNiveau01()->getLabel()); if($viewniveau02) array_push($tmp,($data->getNiveau02()!==null?$data->getNiveau02()->getLabel():"")); array_push($tmp,$groups); + array_push($tmp,$data->getJob()); + array_push($tmp,$data->getPosition()); array_push($tmp,$data->getRole()); array_push($output["data"],$tmp); diff --git a/src/ninegate-1.0/src/Cadoles/CoreBundle/Resources/config/routing.yml b/src/ninegate-1.0/src/Cadoles/CoreBundle/Resources/config/routing.yml index 9333f7ee..904d8405 100644 --- a/src/ninegate-1.0/src/Cadoles/CoreBundle/Resources/config/routing.yml +++ b/src/ninegate-1.0/src/Cadoles/CoreBundle/Resources/config/routing.yml @@ -165,10 +165,18 @@ cadoles_core_config_datauser: path: /config/commun/datauser defaults: { _controller: CadolesCoreBundle:Config:datauser } +cadoles_core_config_datauserdefault: + path: /config/commun/datauserdefault + defaults: { _controller: CadolesCoreBundle:Config:datauserdefault } + cadoles_core_config_datausers: path: /config/commun/datausers defaults: { _controller: CadolesCoreBundle:Config:datausers } +cadoles_core_config_datausersdefault: + path: /config/commun/datausersdefault + defaults: { _controller: CadolesCoreBundle:Config:datausersdefault } + #== Registration ========================================================================================================= #-- Access config diff --git a/src/ninegate-1.0/src/Cadoles/CoreBundle/Resources/views/Config/datauser.html.twig b/src/ninegate-1.0/src/Cadoles/CoreBundle/Resources/views/Config/datauser.html.twig index 91c1f8de..d2bee48f 100755 --- a/src/ninegate-1.0/src/Cadoles/CoreBundle/Resources/views/Config/datauser.html.twig +++ b/src/ninegate-1.0/src/Cadoles/CoreBundle/Resources/views/Config/datauser.html.twig @@ -11,6 +11,16 @@ {{ form_widget(form.submit) }} + {% if mode=="datauser" %} + Valeurs par défaut + {% else %} + Valeurs par défaut + {% endif %} +

{% if app.session.flashbag.has('error') %} diff --git a/src/ninegate-1.0/src/Cadoles/CoreBundle/Resources/views/User/list.html.twig b/src/ninegate-1.0/src/Cadoles/CoreBundle/Resources/views/User/list.html.twig index 8e1498c9..b0d9dfcb 100644 --- a/src/ninegate-1.0/src/Cadoles/CoreBundle/Resources/views/User/list.html.twig +++ b/src/ninegate-1.0/src/Cadoles/CoreBundle/Resources/views/User/list.html.twig @@ -1,5 +1,9 @@ {% extends '@CadolesCore/base.html.twig' %} +{% block localstyle %} +th { font-size: 10px; } +td { font-size: 10px; } +{% endblock %} {% block pagewrapper %} {% if access=="config" %}

Gestion des Utilisateurs

@@ -21,7 +25,7 @@
- +
{% if access=="config" %} @@ -31,13 +35,15 @@ - + {% if viewniveau02 %} {% endif %} + + From 1eacaeea9a529ef3f339de5d21519130f63a97e8 Mon Sep 17 00:00:00 2001 From: afornerot Date: Mon, 16 Dec 2019 17:03:53 +0100 Subject: [PATCH 7/7] =?UTF-8?q?pb=20sur=20propri=C3=A9taire=20de=20groupe?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CoreBundle/Controller/GroupController.php | 19 +++---------------- 1 file changed, 3 insertions(+), 16 deletions(-) diff --git a/src/ninegate-1.0/src/Cadoles/CoreBundle/Controller/GroupController.php b/src/ninegate-1.0/src/Cadoles/CoreBundle/Controller/GroupController.php index f26ac5df..7dbc9c04 100644 --- a/src/ninegate-1.0/src/Cadoles/CoreBundle/Controller/GroupController.php +++ b/src/ninegate-1.0/src/Cadoles/CoreBundle/Controller/GroupController.php @@ -703,6 +703,7 @@ class GroupController extends Controller $data->setFgtemplate(false); if($data->getLdapfilter()!="") $data->setFgopen(false); if($data->getAttributes()!="") $data->setFgopen(false); + if($access=="user") $data->setOwner($this->getUser()); // Icon $idicon = $form->get('idicon')->getData(); @@ -713,20 +714,6 @@ class GroupController extends Controller $em->persist($data); $em->flush(); - // Si acces par user on ajoute forcement le owner comme membre du groupe en tant que manager - /* - if($access=="user") { - $key = Uuid::uuid4(); - $usergroup=new Usergroup; - $usergroup->setUser($this->getUser()); - $usergroup->setGroup($data); - $usergroup->setFgmanager(true); - $usergroup->setKeyvalue($key); - $em->persist($usergroup); - $em->flush(); - } - */ - // On s'assure que le propriétaire est bien membre du groupe $this->ctrlOwner($data); @@ -932,7 +919,7 @@ class GroupController extends Controller protected function ctrlOwner($group) { $em = $this->getDoctrine()->getManager(); if($group->getOwner()) { - $usergroup=$em->getRepository("CadolesCoreBundle:Usergroup")->findOneBy(["user"=>$group->getOwner()]); + $usergroup=$em->getRepository("CadolesCoreBundle:Usergroup")->findOneBy(["group"=>$group,"user"=>$group->getOwner()]); if(!$usergroup) { $key = Uuid::uuid4(); $usergroup=new Usergroup; @@ -1038,7 +1025,7 @@ class GroupController extends Controller if($tmp) $form->addError(new FormError('Un niveau de rang 02 utilise déjà ce label')); // On s'assure que le label ne contient pas des caractères speciaux - $string = preg_replace('~[^@a-zA-Z0-9._-]~', '', $data->getLabel()); + $string = preg_replace('~[^ @a-zA-Z0-9._-]~', '', $data->getLabel()); if($string!=$data->getLabel()) { $form->addError(new FormError('Caractères interdit dans ce label'));
Login Nom PrénomEmailEmail Téléphone {{ labelniveau01 }}{{ labelniveau02 }}GroupesMétierFonction Rôle