Compare commits

...

12 Commits

8 changed files with 131 additions and 14 deletions

View File

@ -8,7 +8,6 @@ EOLE_VERSION=2.6
EOLE_RELEASE=2.6.2 EOLE_RELEASE=2.6.2
PKGAPPS=web PKGAPPS=web
################################ ################################
# Début de zone à ne pas éditer # Début de zone à ne pas éditer
################################ ################################

View File

@ -127,6 +127,9 @@
<variable type='string' name='ninegate_keyterm' description="Durée de validité du jeton d'inscription" mandatory='True'><value>8</value></variable> <variable type='string' name='ninegate_keyterm' description="Durée de validité du jeton d'inscription" mandatory='True'><value>8</value></variable>
<variable type='string' name='ninegate_minpassword' description="Taille minimun du password" mandatory='True'><value>8</value></variable> <variable type='string' name='ninegate_minpassword' description="Taille minimun du password" mandatory='True'><value>8</value></variable>
<variable type='oui/non' name='ninegate_forcetheme' description="Forcer l'utilisation d'un thème"><value>non</value></variable>
<variable type='string' name='ninegate_forcethemename' description="Nom du thème"><value></value></variable>
<!-- MODULE PORTAL --> <!-- MODULE PORTAL -->
<variable type="oui/non" name='ninegate_activate_portal' description='Activer le module portail' mandatory='True'> <variable type="oui/non" name='ninegate_activate_portal' description='Activer le module portail' mandatory='True'>
@ -494,6 +497,8 @@
<target type='variable'>ninegate_moderegistration</target> <target type='variable'>ninegate_moderegistration</target>
<target type='variable'>ninegate_keyterm</target> <target type='variable'>ninegate_keyterm</target>
<target type='variable'>ninegate_minpassword</target> <target type='variable'>ninegate_minpassword</target>
<target type='variable'>ninegate_forcetheme</target>
<target type='variable'>ninegate_forcethemename</target>
<target type='variable'>ninegate_activate_portal</target> <target type='variable'>ninegate_activate_portal</target>
<target type='variable'>ninegate_activate_page</target> <target type='variable'>ninegate_activate_page</target>
@ -699,6 +704,13 @@
<target type='variable'>ninegate_addomaineprofil</target> <target type='variable'>ninegate_addomaineprofil</target>
</condition> </condition>
<!-- AFFICHAGE EN FONCTION DU FORCE THEME -->
<condition name='hidden_if_in' source='ninegate_forcetheme'>
<param>non</param>
<target type='variable'>ninegate_forcethemename</target>
</condition>
<!-- AFFICHAGE EN FONCTION DU MODULE PORTAL --> <!-- AFFICHAGE EN FONCTION DU MODULE PORTAL -->
<condition name='hidden_if_in' source='ninegate_activate_portal'> <condition name='hidden_if_in' source='ninegate_activate_portal'>
<param>non</param> <param>non</param>

View File

@ -237,6 +237,27 @@ class InitDataCommand extends ContainerAwareCommand
$this->addModeration($profil,'cadoles_cron_config_log',0); $this->addModeration($profil,'cadoles_cron_config_log',0);
} }
// Forcer le theme
$force_theme=$this->getContainer()->getParameter('force_theme');
if($force_theme) {
// On force la configuration du theme
$force_themename=$this->getContainer()->getParameter('force_themename');
$config = $em->getRepository('CadolesCoreBundle:Config')->find("theme");
if($config) {
$config->setValue($force_themename);
$em->persist($config);
$em->flush();
}
// On enlève l'accès de la sidebar
$sidebar = $em->getRepository('CadolesCoreBundle:Sidebar')->findOneBy(["path"=>"cadoles_core_config_theme"]);
if($sidebar) {
$em->remove($sidebar);
$em->flush();
}
}
$output->writeln(''); $output->writeln('');
} }

View File

@ -79,6 +79,7 @@ class SynchroCommand extends Command
$ldap_member = strtolower($this->container->getParameter('ldap_member')); $ldap_member = strtolower($this->container->getParameter('ldap_member'));
$scribe_group = strtolower($this->container->getParameter('scribe_group')); $scribe_group = strtolower($this->container->getParameter('scribe_group'));
$ldap_type = $this->container->getParameter('ldap_type');
$ldap_template = $this->container->getParameter('ldap_template'); $ldap_template = $this->container->getParameter('ldap_template');
$ldap_usersadmin = $this->container->getParameter('ldap_usersadmin'); $ldap_usersadmin = $this->container->getParameter('ldap_usersadmin');
$scribe_master = strtolower($this->container->getParameter('scribe_master')); $scribe_master = strtolower($this->container->getParameter('scribe_master'));
@ -633,10 +634,13 @@ class SynchroCommand extends Command
$dn=$this->ldap->getNiveau01DN($data->getLabel()); $dn=$this->ldap->getNiveau01DN($data->getLabel());
$attrs["memberuid"]=array(); $attrs["memberuid"]=array();
$attrs["cadolesMember"]=array(); $attrs["cadolesMember"]=array();
if($ldap_type=="AD") $attrs["member"]=array();
foreach($data->getUsers() as $userniveau01) { foreach($data->getUsers() as $userniveau01) {
array_push($attrs["memberuid"],$userniveau01->getUsername()); array_push($attrs["memberuid"],$userniveau01->getUsername());
array_push($attrs["cadolesMember"],$this->ldap->getUserDN($userniveau01)); array_push($attrs["cadolesMember"],$this->ldap->getUserDN($userniveau01));
if($ldap_type=="AD") array_push($attrs["member"],$this->ldap->getUserDN($userniveau01));
$this->writeln(' > '.$userniveau01->getUsername()); $this->writeln(' > '.$userniveau01->getUsername());
} }
if(!$simulate) $this->ldap->ldapModify($dn, $attrs); if(!$simulate) $this->ldap->ldapModify($dn, $attrs);
@ -664,10 +668,13 @@ class SynchroCommand extends Command
$dn=$this->ldap->getNiveau02DN($data->getLabel()); $dn=$this->ldap->getNiveau02DN($data->getLabel());
$attrs["memberuid"]=array(); $attrs["memberuid"]=array();
$attrs["cadolesMember"]=array(); $attrs["cadolesMember"]=array();
if($ldap_type=="AD") $attrs["member"]=array();
foreach($data->getUsers() as $userniveau01) { foreach($data->getUsers() as $userniveau01) {
array_push($attrs["memberuid"],$userniveau01->getUsername()); array_push($attrs["memberuid"],$userniveau01->getUsername());
array_push($attrs["cadolesMember"],$this->ldap->getUserDN($userniveau01)); array_push($attrs["cadolesMember"],$this->ldap->getUserDN($userniveau01));
if($ldap_type=="AD") array_push($attrs["member"],$this->ldap->getUserDN($userniveau01));
$this->writeln(' > '.$userniveau01->getUsername()); $this->writeln(' > '.$userniveau01->getUsername());
} }
if(!$simulate) $this->ldap->ldapModify($dn, $attrs); if(!$simulate) $this->ldap->ldapModify($dn, $attrs);
@ -696,11 +703,14 @@ class SynchroCommand extends Command
$dn=$this->ldap->getGroupDN($data->getLabel()); $dn=$this->ldap->getGroupDN($data->getLabel());
$attrs["memberuid"]=array(); $attrs["memberuid"]=array();
$attrs["cadolesMember"]=array(); $attrs["cadolesMember"]=array();
if($ldap_type=="AD") $attrs['member']=array();
foreach($data->getUsers() as $usergroupe) { foreach($data->getUsers() as $usergroupe) {
if(!in_array($usergroupe->getUser()->getUsername(), $attrs["memberuid"])) { if(!in_array($usergroupe->getUser()->getUsername(), $attrs["memberuid"])) {
array_push($attrs["memberuid"],$usergroupe->getUser()->getUsername()); array_push($attrs["memberuid"],$usergroupe->getUser()->getUsername());
array_push($attrs["cadolesMember"],$this->ldap->getUserDN($usergroupe->getUser())); array_push($attrs["cadolesMember"],$this->ldap->getUserDN($usergroupe->getUser()));
if($ldap_type=="AD") array_push($attrs["member"],$this->ldap->getUserDN($usergroupe->getUser()));
$this->writeln(' > '.$usergroupe->getUser()->getUsername()); $this->writeln(' > '.$usergroupe->getUser()->getUsername());
} }
else { else {

View File

@ -241,6 +241,7 @@ class ldapService
$dn = $this->getNiveau01DN($result["cn"]); $dn = $this->getNiveau01DN($result["cn"]);
$entry['memberuid'] = $user->getUsername(); $entry['memberuid'] = $user->getUsername();
$entry['cadolesMember'] = $this->getUserDN($user); $entry['cadolesMember'] = $this->getUserDN($user);
if($this->type=="AD") $entry['member'] = $this->getUserDN($user);
$result = ldap_mod_del($connection, $dn, $entry); $result = ldap_mod_del($connection, $dn, $entry);
if(!$result) $this->ldapError(); if(!$result) $this->ldapError();
@ -257,6 +258,7 @@ class ldapService
$dn = $this->getNiveau01DN($user->getNiveau01()->getLabel()); $dn = $this->getNiveau01DN($user->getNiveau01()->getLabel());
$entry['memberuid'] = $user->getUsername(); $entry['memberuid'] = $user->getUsername();
$entry['cadolesMember'] = $this->getUserDN($user); $entry['cadolesMember'] = $this->getUserDN($user);
if($this->type=="AD") $entry['member'] = $this->getUserDN($user);
$result = ldap_mod_add($connection, $dn, $entry); $result = ldap_mod_add($connection, $dn, $entry);
if(!$result) $this->ldapError(); if(!$result) $this->ldapError();
@ -273,6 +275,8 @@ class ldapService
$dn = $this->getNiveau02DN($result["cn"]); $dn = $this->getNiveau02DN($result["cn"]);
$entry['memberuid'] = $user->getUsername(); $entry['memberuid'] = $user->getUsername();
$entry['cadolesMember'] = $this->getUserDN($user); $entry['cadolesMember'] = $this->getUserDN($user);
if($this->type=="AD") $entry['member'] = $this->getUserDN($user);
$result = ldap_mod_del($connection, $dn, $entry); $result = ldap_mod_del($connection, $dn, $entry);
if(!$result) $this->ldapError(); if(!$result) $this->ldapError();
} }
@ -289,6 +293,8 @@ class ldapService
$dn = $this->getNiveau02DN($user->getNiveau02()->getLabel()); $dn = $this->getNiveau02DN($user->getNiveau02()->getLabel());
$entry['memberuid'] = $user->getUsername(); $entry['memberuid'] = $user->getUsername();
$entry['cadolesMember'] = $this->getUserDN($user); $entry['cadolesMember'] = $this->getUserDN($user);
if($this->type=="AD") $entry['member'] = $this->getUserDN($user);
$result = ldap_mod_add($connection, $dn, $entry); $result = ldap_mod_add($connection, $dn, $entry);
if(!$result) $this->ldapError(); if(!$result) $this->ldapError();
} }
@ -441,6 +447,10 @@ class ldapService
$attrs['cn'] = $niveau01->getLabel(); $attrs['cn'] = $niveau01->getLabel();
$attrs['gidNumber'] = $niveau01->getId(); $attrs['gidNumber'] = $niveau01->getId();
$attrs['siren'] = $niveau01->getSiren(); $attrs['siren'] = $niveau01->getSiren();
if($this->type=="AD") {
$attrs['sAMAccountName'] = $niveau01->getLabel();
}
} }
public function getNiveau01DN($id) { public function getNiveau01DN($id) {
@ -530,6 +540,10 @@ class ldapService
$attrs['gidNumber'] = $niveau02->getId(); $attrs['gidNumber'] = $niveau02->getId();
$attrs['siret'] = $niveau02->getSiret(); $attrs['siret'] = $niveau02->getSiret();
$attrs['postalAddress'] = $niveau02->getPostaladress(); $attrs['postalAddress'] = $niveau02->getPostaladress();
if($this->type=="AD") {
$attrs['sAMAccountName'] = $niveau02->getLabel();
}
} }
public function getNiveau02DN($id) { public function getNiveau02DN($id) {
@ -616,6 +630,10 @@ class ldapService
$attrs['cn'] = $group->getLabel(); $attrs['cn'] = $group->getLabel();
$attrs['gidNumber'] = $group->getId(); $attrs['gidNumber'] = $group->getId();
$attrs['mail'] = $group->getEmail(); $attrs['mail'] = $group->getEmail();
if($this->type=="AD") {
$attrs['sAMAccountName'] = $group->getLabel();
}
} }
public function getGroupDN($id) { public function getGroupDN($id) {
@ -640,6 +658,8 @@ class ldapService
$dn = $this->getGroupDN($usergroup->getGroup()->getLabel()); $dn = $this->getGroupDN($usergroup->getGroup()->getLabel());
$entry['memberuid'] = $usergroup->getUser()->getUsername(); $entry['memberuid'] = $usergroup->getUser()->getUsername();
$entry['cadolesMember'] = $this->getUserDN($usergroup->getUser()); $entry['cadolesMember'] = $this->getUserDN($usergroup->getUser());
if($this->type=="AD") $entry['member'] = $this->getUserDN($usergroup->getUser());
$result = ldap_mod_add($connection, $dn, $entry); $result = ldap_mod_add($connection, $dn, $entry);
if(!$result) $this->ldapError(); if(!$result) $this->ldapError();
} }
@ -661,6 +681,8 @@ class ldapService
$dn = $this->getGroupDN($usergroup->getGroup()->getLabel()); $dn = $this->getGroupDN($usergroup->getGroup()->getLabel());
$entry['memberuid'] = $usergroup->getUser()->getUsername(); $entry['memberuid'] = $usergroup->getUser()->getUsername();
$entry['cadolesMember'] = $this->getUserDN($usergroup->getUser()); $entry['cadolesMember'] = $this->getUserDN($usergroup->getUser());
if($this->type=="AD") $entry['member'] = $this->getUserDN($usergroup->getUser());
$result = ldap_mod_del($connection, $dn, $entry); $result = ldap_mod_del($connection, $dn, $entry);
if(!$result) $this->ldapError(); if(!$result) $this->ldapError();
} }

View File

@ -1470,6 +1470,30 @@ class InitDataCommand extends ContainerAwareCommand
$em->remove($entityWidget); $em->remove($entityWidget);
} }
// Dokuwiki
$entityWidget = $em->getRepository('CadolesPortalBundle:Widget')->find(-1780);
if($activate_widdokuwiki) {
if(!$entityWidget) $entityWidget = new Widget();
$entityicon = $em->getRepository('CadolesPortalBundle:Icon')->findoneby(["label"=>"uploads/icon/icon_dokuwiki.png"]);
$entityWidget->setId(-1780);
$entityWidget->setRoworder(0);
$entityWidget->setIcon($entityicon);
$entityWidget->setName('Dokuwiki');
$entityWidget->setDescription("Plan de votre dokuwiki");
$entityWidget->setRouteview("cadoles_portal_config_panelwidget_view_urlfixe");
$entityWidget->setHeight("630");
$entityWidget->setAutoajust(false);
$entityWidget->setBorder(false);
$entityWidget->setOpened(true);
$entityWidget->setAccess(["config","user","group"]);
$parameter = json_decode('{"fields": [{"id": "url", "loc": "col1", "type": "hidden", "label": "URL", "value": "'.$widdokuwiki_url.'/widgetdokuwiki.php", "mandatory": "true"}]}');
$entityWidget->setParameter($parameter);
$em->persist($entityWidget);
}
elseif($entityWidget) {
$em->remove($entityWidget);
}
// Widget Séparateur // Widget Séparateur
$entityWidget = $em->getRepository('CadolesPortalBundle:Widget')->find(-1600); $entityWidget = $em->getRepository('CadolesPortalBundle:Widget')->find(-1600);
if(!$entityWidget) $entityWidget = new Widget(); if(!$entityWidget) $entityWidget = new Widget();

View File

@ -13,6 +13,7 @@ use Doctrine\DBAL\Connection as DBALConnection;
use Doctrine\ORM\EntityManager; use Doctrine\ORM\EntityManager;
use Symfony\Component\Validator\Constraints\DateTime; use Symfony\Component\Validator\Constraints\DateTime;
use it\thecsea\simple_caldav_client\SimpleCalDAVClient; use it\thecsea\simple_caldav_client\SimpleCalDAVClient;
use it\thecsea\simple_caldav_client\CalDAVException;
use Cadoles\PortalBundle\Entity\Calendarevent; use Cadoles\PortalBundle\Entity\Calendarevent;
@ -437,7 +438,6 @@ class SynchroICSCommand extends Command
$idcalendar = $input->getArgument('idcalendar'); $idcalendar = $input->getArgument('idcalendar');
$PROXYactivate = $this->em->getRepository("CadolesCoreBundle:Config")->findOneBy(["id"=>"PROXYactivate"])->getValue();
$PROXYserver = $this->em->getRepository("CadolesCoreBundle:Config")->findOneBy(["id"=>"PROXYserver"])->getValue(); $PROXYserver = $this->em->getRepository("CadolesCoreBundle:Config")->findOneBy(["id"=>"PROXYserver"])->getValue();
$PROXYport = $this->em->getRepository("CadolesCoreBundle:Config")->findOneBy(["id"=>"PROXYport"])->getValue(); $PROXYport = $this->em->getRepository("CadolesCoreBundle:Config")->findOneBy(["id"=>"PROXYport"])->getValue();
@ -461,6 +461,7 @@ class SynchroICSCommand extends Command
case 1: case 1:
$this->writeln($calendar->getId()." = ICS = ".$calendar->getUrl()); $this->writeln($calendar->getId()." = ICS = ".$calendar->getUrl());
$client = new CalFileParser(); $client = new CalFileParser();
$PROXYactivate = $this->em->getRepository("CadolesCoreBundle:Config")->findOneBy(["id"=>"PROXYactivate"])->getValue();
try { try {
if($PROXYactivate) if($PROXYactivate)
@ -555,25 +556,44 @@ class SynchroICSCommand extends Command
// CalDav // CalDav
case 2: case 2:
// Création du client calDAV
$this->writeln("");
$this->writeln($calendar->getId()." = CalDAV = ".$calendar->getUrl()); $this->writeln($calendar->getId()." = CalDAV = ".$calendar->getUrl());
// Récupération du mode proxy
$PROXYactivate = $this->em->getRepository("CadolesCoreBundle:Config")->findOneBy(["id"=>"PROXYactivate"])->getValue();
// En mode proxy on tente la connection via le proxy
if($PROXYactivate) {
$client = new SimpleCalDAVClient(); $client = new SimpleCalDAVClient();
try { try {
if($PROXYactivate)
@$client->connect($calendar->getUrl(), $calendar->getLogin(), $calendar->getPasswordDecrypt(),['proxy_host'=>$PROXYserver.":".$PROXYport,'timeout'=>5]); @$client->connect($calendar->getUrl(), $calendar->getLogin(), $calendar->getPasswordDecrypt(),['proxy_host'=>$PROXYserver.":".$PROXYport,'timeout'=>5]);
else }
catch (CalDAVException $e) {
// Si KO on tente la meme connection mais sans le proxy
$PROXYactivate = false;
$this->writeln("Tentative de connection sans proxy");
}
}
if(!$PROXYactivate) {
$client = new SimpleCalDAVClient();
try {
@$client->connect($calendar->getUrl(), $calendar->getLogin(), $calendar->getPasswordDecrypt(),['timeout'=>5]); @$client->connect($calendar->getUrl(), $calendar->getLogin(), $calendar->getPasswordDecrypt(),['timeout'=>5]);
} }
catch (Exception $e) { catch (CalDAVException $e) {
dump($e->__toString()); $this->writelnred("");
$this->writelnred("KO = ".$e->getMessage());
break; break;
} }
}
$this->writeln("Connected"); $this->writeln("Connected");
$this->writeln("");
$tbuid=array(); $tbuid=array();
$arrayOfCalendars = $client->findCalendars("afornerot"); $arrayOfCalendars = $client->findCalendars();
foreach($arrayOfCalendars as $calcalendar) { foreach($arrayOfCalendars as $calcalendar) {
$this->writeln($calcalendar->getDisplayName());
if($calcalendar->getDisplayName()!=$calendar->getCaldavname()) continue; if($calcalendar->getDisplayName()!=$calendar->getCaldavname()) continue;
$client->setCalendar($calcalendar); $client->setCalendar($calcalendar);

View File

@ -30,6 +30,15 @@ parameters:
%end if %end if
initpwdadmin: %%getVar("ninegate_pwdadmin", '') initpwdadmin: %%getVar("ninegate_pwdadmin", '')
# Force theme
%if %%getVar("ninegate_forcetheme", 'non') == "oui"
force_theme: true
force_themename: %%ninegate_forcethemename
%else
force_theme: false
force_themename:
%end if
# Activation module # Activation module
%if %%getVar("ninegate_activate_cron", 'non') == "oui" %if %%getVar("ninegate_activate_cron", 'non') == "oui"
cron_activate: true cron_activate: true