This commit is contained in:
afornerot 2019-10-14 13:30:50 +02:00
parent 210b669909
commit e9b2f694fa
6 changed files with 125 additions and 13 deletions

View File

@ -620,7 +620,7 @@ class SynchroCommand extends Command
$criteria = '(cn=*)'; $criteria = '(cn=*)';
$subbranch=$baseGroup; $subbranch=$baseGroup;
$results = $this->search($criteria, array('cn'), $subbranch); $results = $this->ldap->search($criteria, array('cn'), $subbranch);
foreach($results as $result) { foreach($results as $result) {
$data = $this->em->getRepository('CadolesCoreBundle:Group')->findBy(array('label' => $result["cn"])); $data = $this->em->getRepository('CadolesCoreBundle:Group')->findBy(array('label' => $result["cn"]));
if($data) $this->writeln(' - Existe dans bundle >> '.$result["cn"]); if($data) $this->writeln(' - Existe dans bundle >> '.$result["cn"]);

View File

@ -8,7 +8,7 @@ INSERT IGNORE INTO `niveau01` (`id`, `label`, `siren`) VALUES
(-100, 'DRAAF', '130007107'); (-100, 'DRAAF', '130007107');
INSERT IGNORE INTO `user` (`id`, `niveau01_id`, `username`, `firstname`, `lastname`, `password`, `email`, `avatar`, `role`,`siren`,`authlevel`) VALUES INSERT IGNORE INTO `user` (`id`, `niveau01_id`, `username`, `firstname`, `lastname`, `password`, `email`, `avatar`, `role`,`siren`,`authlevel`) VALUES
(-100, -100, 'admin', 'Administrateur', 'draaf', '{SSHA}oHrljV00WDOVTiNtiKKmRtI13Y7XhUSj (-100, -100, 'admin', 'Administrateur', 'draaf', '{SSHA}dRJCAXfIVqY9JEXjlinWAYEWdQSse65o
', 'admin@ldapbundle.ac-arno.fr', 'admin.jpg', 'ROLE_ADMIN', '130007107', 'simple'); ', 'admin@ldapbundle.ac-arno.fr', 'admin.jpg', 'ROLE_ADMIN', '130007107', 'simple');

View File

@ -128,3 +128,6 @@ services:
cadoles.saml_attribute_mapper: cadoles.saml_attribute_mapper:
public: true public: true
class: Cadoles\CoreBundle\Service\samlAttributeMapperService class: Cadoles\CoreBundle\Service\samlAttributeMapperService

View File

@ -48,8 +48,6 @@ class CronCommand extends ContainerAwareCommand
return 0; return 0;
} }
$this->filesystem->appendToFile($this->rootlog.'cron.lock', "lock");
$crons = $entityManager->getRepository('CadolesCronBundle:Cron')->toexec(); $crons = $entityManager->getRepository('CadolesCronBundle:Cron')->toexec();
$i=0; $i=0;

View File

@ -42,12 +42,6 @@ class InitDataCommand extends ContainerAwareCommand
} }
protected function insertCron() { protected function insertCron() {
// afin de forcer les ID sur certaines entités
$metadata = $this->entityManager->getClassMetaData(get_class($entity));
$metadata->setIdGeneratorType(ClassMetadata::GENERATOR_TYPE_NONE);
$metadata->setIdGenerator(new AssignedGenerator());
// Job Mail // Job Mail
// Toute les minutes // Toute les minutes
$entity = $this->entityManager->getRepository('CadolesCronBundle:Cron')->find(1); $entity = $this->entityManager->getRepository('CadolesCronBundle:Cron')->find(1);
@ -64,7 +58,124 @@ class InitDataCommand extends ContainerAwareCommand
$entity->setJsonargument('{"message-limit":"100","env":"prod"}'); $entity->setJsonargument('{"message-limit":"100","env":"prod"}');
$this->entityManager->persist($entity); $this->entityManager->persist($entity);
} }
// afin de forcer les ID sur certaines entités
$metadata = $this->entityManager->getClassMetaData(get_class($entity));
$metadata->setIdGeneratorType(ClassMetadata::GENERATOR_TYPE_NONE);
$metadata->setIdGenerator(new AssignedGenerator());
// Job synchronisation des comptes utilisateur
// Toute les 24h à 3h00
$entity = $this->entityManager->getRepository('CadolesCronBundle:Cron')->find(100);
if(!$entity) {
$entity = new Cron;
$nextdate=$entity->getSubmitdate();
$nextdate->setTime(3,0);
$entity->setCommand("Core:Synchro");
$entity->setDescription("Synchronisation des Comptes Utilisateurs");
$entity->setId(100);
$entity->setStatut(2);
$entity->setRepeatcall(0);
$entity->setRepeatexec(0);
$entity->setRepeatinterval(86400);
$entity->setNextexecdate($nextdate);
$entity->setJsonargument('{"simulate":"false"}');
$this->entityManager->persist($entity);
}
// Job purge des registrations obsolètes
// Toute les 5mn
$entity = $this->entityManager->getRepository('CadolesCronBundle:Cron')->find(110);
if(!$entity) {
$entity = new Cron;
$entity->setCommand("Core:PurgeRegistration");
$entity->setDescription("Purge des Inscriptions obsolètes");
$entity->setId(110);
$entity->setStatut(2);
$entity->setRepeatcall(0);
$entity->setRepeatexec(0);
$entity->setRepeatinterval(300);
$entity->setNextexecdate($entity->getSubmitdate());
$this->entityManager->persist($entity);
}
// Job de purge des fichiers obsolète
// Toute les 24h à 3h00
$entity = $this->entityManager->getRepository('CadolesCronBundle:Cron')->find(200);
if(!$entity) {
$entity = new Cron;
$nextdate=$entity->getSubmitdate();
$nextdate->setTime(3,0);
$entity->setCommand("Core:PurgeFile");
$entity->setDescription("Suppression des fichiers obsolètes");
$entity->setId(200);
$entity->setStatut(2);
$entity->setRepeatcall(0);
$entity->setRepeatexec(0);
$entity->setRepeatinterval(86400);
$entity->setNextexecdate($nextdate);
$this->entityManager->persist($entity);
}
// CRON PORTAIL
// Job purge des registrations obsolètes
// Toute les 5mn
$portal_activate = $this->getContainer()->getParameter('portal_activate');
$calendar_activate = $this->getContainer()->getParameter('calendar_activate');
$entity = $this->entityManager->getRepository('CadolesCronBundle:Cron')->find(1000);
if(!$entity&&($portal_activate||$calendar_activate)) {
$entity = new Cron;
$entity->setCommand("Portal:SynchroICS");
$entity->setDescription("Synchronisation des Calendriers Utilisateurs liés à une URL ICS");
$entity->setId(1000);
$entity->setStatut(2);
$entity->setRepeatcall(0);
$entity->setRepeatexec(0);
$entity->setRepeatinterval(600);
$entity->setNextexecdate($entity->getSubmitdate());
$this->entityManager->persist($entity);
}
elseif($entity&&!($portal_activate||$calendar_activate)) {
$this->entityManager->remove($entity);
}
// Job de récupération des sondages Limesurvey
// Toute les 6h
$activate_widlimesurvey = $this->getContainer()->getParameter('activate_widlimesurvey');
$entity = $this->entityManager->getRepository('CadolesCronBundle:Cron')->find(1010);
if(!$entity&&$activate_widlimesurvey) {
$entity = new Cron;
$nextdate=$entity->getSubmitdate();
$nextdate->setTime(1,0);
$entity->setCommand("Portal:GetLimesurvey");
$entity->setDescription("Récupération des sondages Limesurvey");
$entity->setId(1010);
$entity->setStatut(2);
$entity->setRepeatcall(0);
$entity->setRepeatexec(0);
$entity->setRepeatinterval(21600);
$entity->setNextexecdate($nextdate);
$this->entityManager->persist($entity);
}
elseif($entity&&!$activate_widlimesurvey) {
$this->entityManager->remove($entity);
}
// Job de récupération des cours Moodle
// Toute les 6h
$activate_widmoodle = $this->getContainer()->getParameter('activate_widmoodle');
$entity = $this->entityManager->getRepository('CadolesCronBundle:Cron')->find(1020);
if(!$entity&&$activate_widmoodle) {
$entity = new Cron;
$nextdate=$entity->getSubmitdate();
$nextdate->setTime(1,0);
$entity->setCommand("Portal:GetMoodle");
$entity->setDescription("Récupération des cours Moodle ");
$entity->setId(1020);
$entity->setStatut(2);
$entity->setRepeatcall(0);
$entity->setRepeatexec(0);
$entity->setRepeatinterval(21600);
$entity->setNextexecdate($nextdate);
$this->entityManager->persist($entity);
}
elseif($entity&&!$activate_widmoodle) {
$this->entityManager->remove($entity);
}
$this->entityManager->flush(); $this->entityManager->flush();
} }
} }