2018-12-18 09:44:39 +01:00
< ? php
namespace Cadoles\CoreBundle\Command ;
use Symfony\Component\Console\Command\Command ;
use Symfony\Component\Console\Input\InputInterface ;
use Symfony\Component\Console\Input\InputArgument ;
use Symfony\Component\Console\Output\OutputInterface ;
use Symfony\Component\Finder\Finder ;
use Symfony\Component\HttpKernel\KernelInterface ;
use Doctrine\DBAL\Connection as DBALConnection ;
use Doctrine\ORM\EntityManager ;
use Cadoles\CoreBundle\Entity\Niveau01 ;
use Cadoles\CoreBundle\Entity\Niveau02 ;
2019-03-12 14:50:57 +01:00
use Cadoles\CoreBundle\Entity\User ;
use Cadoles\CoreBundle\Entity\Group ;
use Cadoles\CoreBundle\Entity\UserGroup ;
2018-12-18 09:44:39 +01:00
global $bdd01 ;
global $config ;
class SynchroCommand extends Command
{
protected function configure ()
{
$this
// the name of the command (the part after "bin/console")
-> setName ( 'Core:Synchro' )
// the short description shown while running "php bin/console list"
-> setDescription ( 'Synchronisation Annuaire' )
// the full command description shown when running the command with
// the "--help" option
-> setHelp ( 'This command Synchro for Core' )
-> addArgument ( 'simulate' , InputArgument :: OPTIONAL , 'true to simulate / false to run' )
;
}
protected function execute ( InputInterface $input , OutputInterface $output )
{
$kernel = new \AppKernel ( 'dev' , true );
$kernel -> boot ();
$kernel -> loadClassCache ();
$em = $kernel -> getContainer () -> get ( 'service_container' ) -> get ( 'doctrine.orm.default_entity_manager' );
setlocale ( LC_CTYPE , 'fr_FR' );
2019-03-12 14:50:57 +01:00
$labelniveau01 = mb_strtoupper ( $kernel -> getContainer () -> getParameter ( 'labelniveau01' ));
$labelniveau02 = mb_strtoupper ( $kernel -> getContainer () -> getParameter ( 'labelniveau02' ));
$masteridentity = $kernel -> getContainer () -> getParameter ( 'masteridentity' );
2018-12-18 09:44:39 +01:00
$simulate = $input -> getArgument ( 'simulate' );
if ( $simulate == " " ) $simulate = " true " ;
if ( $simulate != " true " && $simulate != " false " ) {
$output -> writeln ( 'Paramétre incorrect' );
return ;
}
$simulate = ( $simulate == " true " );
$output -> writeln ( '' );
if ( $simulate ) $output -> writeln ( '** SIMULATION' );
else $output -> writeln ( '** REEL' );
2019-03-12 14:50:57 +01:00
$output -> writeln ( '' );
$output -> writeln ( '=====================================================' );
$output -> writeln ( '== SYNCHONISATION ANNUAIRE ==========================' );
$output -> writeln ( '=====================================================' );
2018-12-18 09:44:39 +01:00
$ldap = $kernel -> getContainer () -> get ( 'cadoles.core.service.ldap' );
2019-03-12 14:50:57 +01:00
if ( ! $ldap -> isEnabled ()) {
if ( $masteridentity != " LDAP " ) {
$output -> writeln ( '' );
$output -> writeln ( ' Synchronisation annuaire désactivée' );
}
else {
$output -> writeln ( '' );
$output -> writeln ( '=====================================================' );
$output -> writeln ( '== SYNCHONISATION LDAP TO BUNDLE ====================' );
$output -> writeln ( '=====================================================' );
$ldap_basedn = $kernel -> getContainer () -> getParameter ( 'ldap_basedn' );
$ldap_template = $kernel -> getContainer () -> getParameter ( 'ldap_template' );
$ldap_username = $kernel -> getContainer () -> getParameter ( 'ldap_username' );
$ldap_firstname = $kernel -> getContainer () -> getParameter ( 'ldap_firstname' );
$ldap_lastname = $kernel -> getContainer () -> getParameter ( 'ldap_lastname' );
$ldap_email = $kernel -> getContainer () -> getParameter ( 'ldap_email' );
$ldap_usersadmin = $kernel -> getContainer () -> getParameter ( 'ldap_usersadmin' );
$fieldstoread = array ( $ldap_username , $ldap_firstname , $ldap_lastname , $ldap_email );
$ldapusers = array ();
if ( $ldap_template == " scribe " ) {
$output -> writeln ( '' );
$output -> writeln ( '== PROFILS ==========================================' );
// Eleves
$ldapfilter = " (&(uid=*)(ENTPersonProfils=eleve)) " ;
$label = " PROFIL = Elèves " ;
$output -> writeln ( " - $label " );
if ( ! $simulate ) $this -> addmodGroup ( $em , $label , $ldapfilter );
// Enseignants
$ldapfilter = " (|(&(uid=*)(ENTPersonProfils=enseignant))(&(uid=*)(typeadmin=0))(&(uid=*)(typeadmin=2))) " ;
$label = " PROFIL = Enseignants " ;
$output -> writeln ( " - $label " );
if ( ! $simulate ) $this -> addmodGroup ( $em , $label , $ldapfilter );
// Responsables
$ldapfilter = " (&(uid=*)(ENTPersonProfils=responsable)) " ;
$label = " PROFIL = Responsables " ;
$output -> writeln ( " - $label " );
if ( ! $simulate ) $this -> addmodGroup ( $em , $label , $ldapfilter );
// Administratifs
$ldapfilter = " (&(uid=*)(ENTPersonProfils=administratif)) " ;
$label = " PROFIL = Administratifs " ;
$output -> writeln ( " - $label " );
if ( ! $simulate ) $this -> addmodGroup ( $em , $label , $ldapfilter );
$output -> writeln ( '' );
$output -> writeln ( '== CLASSES ==========================================' );
$results = $ldap -> search ( " type=Classe " , [ 'cn' , 'description' , 'gidNumber' ], $ldap_basedn );
foreach ( $results as $result ) {
$cn = $result [ " cn " ];
$ldapfilter = " (|(&(type=Classe)(cn= $cn ))(&(type=Equipe)(cn=profs- $cn ))(&(ENTPersonProfils=Administratif)(divcod= $cn ))) " ;
$label = " CLASSE = " . $result [ " cn " ];
$output -> writeln ( " - $label " );
if ( ! $simulate ) $this -> addmodGroup ( $em , $label , $ldapfilter );
}
}
$output -> writeln ( '' );
$output -> writeln ( '== USERS ============================================' );
// On parcours les niveaux 01 pour connaitre les filtres ldap associé
$datas = $em -> createQueryBuilder () -> select ( 'table' ) -> from ( 'CadolesCoreBundle:Niveau01' , 'table' ) -> where ( 'table.ldapfilter IS NOT NULL' ) -> getQuery () -> getResult ();
foreach ( $datas as $data ) {
// On execute le filtre d'appartenance à ce niveau
$results = $ldap -> search ( $data -> getLdapfilter (), $fieldstoread , $ldap_basedn );
// Pour chaque utilisateur ldap
foreach ( $results as $result ) {
// On sauvegarde ce user
array_push ( $ldapusers , $result [ $ldap_username ]);
// Création ou Modification du user
$user = $em -> getRepository ( 'CadolesCoreBundle:User' ) -> findBy ( array ( 'username' => $result [ $ldap_username ]));
if ( ! $user ) {
$output -> writeln ( " - Création dans Bundle >> " . $result [ $ldap_username ]);
if ( ! $simulate ) $this -> addUser ( $em , $data , $result [ $ldap_username ], $result [ $ldap_firstname ], $result [ $ldap_lastname ], $result [ $ldap_email ], $ldap_usersadmin );
}
else {
$output -> writeln ( " - Modification dans Bundle >> " . $result [ $ldap_username ]);
if ( ! $simulate ) $this -> modUser ( $em , $user [ 0 ], $result [ $ldap_username ], $result [ $ldap_firstname ], $result [ $ldap_lastname ], $result [ $ldap_email ], $ldap_usersadmin );
}
}
}
$output -> writeln ( '' );
$output -> writeln ( '== USERS GROUP ======================================' );
$groups = $em -> getRepository ( 'CadolesCoreBundle:Group' ) -> findAll ();
foreach ( $groups as $group ) {
$ldapusersgroup = array ();
$ldapfilter = $group -> getLdapfilter ();
$output -> writeln ( '' );
$output -> writeln ( '== ' . $group -> getLabel ());
if ( ! is_null ( $ldapfilter )) {
$results = $ldap -> search ( $ldapfilter ,[ $ldap_username , " memberuid " ] , $ldap_basedn );
foreach ( $results as $result ) {
if ( isset ( $result [ " memberuid " ])) {
// Si memberid est un tableau il y a plusieur user dedans
if ( is_array ( $result [ " memberuid " ])) {
foreach ( $result [ " memberuid " ] as $key => $value ) {
if ( is_int ( $key )) {
$user = $em -> getRepository ( 'CadolesCoreBundle:User' ) -> findOneBy ( array ( 'username' => $value ));
if ( $user ) {
array_push ( $ldapusersgroup , $value );
$output -> writeln ( " - Rattacher >> " . $value );
if ( ! $simulate ) $this -> addtoGroup ( $em , $user , $group );
}
}
}
}
// sinon m'a qu'un seul uid
else {
$user = $em -> getRepository ( 'CadolesCoreBundle:User' ) -> findOneBy ( array ( 'username' => $result [ " memberuid " ]));
if ( $user ) {
array_push ( $ldapusersgroup , $result [ " memberuid " ]);
$output -> writeln ( " - Rattacher >> " . $result [ " memberuid " ]);
if ( ! $simulate ) $this -> addtoGroup ( $em , $user , $group );
}
}
}
if ( isset ( $result [ $ldap_username ])) {
$user = $em -> getRepository ( 'CadolesCoreBundle:User' ) -> findOneBy ( array ( 'username' => $result [ $ldap_username ]));
if ( $user ) {
array_push ( $ldapusersgroup , $result [ $ldap_username ]);
$output -> writeln ( " - Rattacher >> " . $result [ $ldap_username ]);
if ( ! $simulate ) $this -> addtoGroup ( $em , $user , $group );
}
}
}
$members = $em -> getRepository ( 'CadolesCoreBundle:UserGroup' ) -> findBy ( array ( 'group' => $group ));
foreach ( $members as $member ) {
if ( ! in_array ( $member -> getUser () -> getUsername (), $ldapusersgroup )) {
$output -> writeln ( " - Détattacher >> " . $member -> getUser () -> getUsername ());
if ( ! $simulate ) {
$em -> remove ( $member );
$em -> flush ();
}
}
}
}
}
$output -> writeln ( '' );
$output -> writeln ( '=====================================================' );
$output -> writeln ( '== SYNCHONISATION BUNDLE TO LDAP ====================' );
$output -> writeln ( '=====================================================' );
$output -> writeln ( '' );
$output -> writeln ( '== USERS ============================================' );
// Pour chaque utilisateur de la base
$users = $em -> getRepository ( 'CadolesCoreBundle:User' ) -> findAll ();
foreach ( $users as $user ) {
// Si l'utilisateur n'est pas dans la liste des users ldap : on le supprime
if ( ! in_array ( $user -> getUsername (), $ldapusers )) {
$output -> writeln ( " - Suppression dans Bundle >> " . $user -> getUsername ());
if ( ! $simulate ) {
$em -> remove ( $user );
$em -> flush ();
}
}
}
}
}
else {
2018-12-18 09:44:39 +01:00
$output -> writeln ( '' );
$output -> writeln ( '=====================================================' );
$output -> writeln ( '== SYNCHONISATION BUNDLE TO LDAP ====================' );
$output -> writeln ( '=====================================================' );
$output -> writeln ( '' );
$output -> writeln ( '== NIVEAU01 =========================================' );
$baseNiveau01 = $kernel -> getContainer () -> getParameter ( 'ldap_baseniveau01' );
$datas = $em -> createQueryBuilder ()
-> select ( 'table' )
-> from ( 'CadolesCoreBundle:Niveau01' , 'table' )
-> getQuery ()
-> getResult ();
foreach ( $datas as $data ) {
$criteria = '(cn=' . $data -> getLabel () . ')' ;
$subbranch = $baseNiveau01 ;
$results = $ldap -> search ( $criteria , array ( 'cn' ), $subbranch );
// Mise à jour si elle existe
if ( count ( $results ) > 0 ) {
$output -> writeln ( ' - Modification dans annuaire >> ' . $data -> getLabel ());
if ( ! $simulate ) $ldap -> modifyNiveau01 ( $data , $data -> getLabel ());
}
// Sinon création de la fiche
else {
$output -> writeln ( ' - Création dans annuaire >> ' . $data -> getLabel ());
if ( ! $simulate ) $ldap -> addNiveau01 ( $data );
}
}
$output -> writeln ( '' );
$output -> writeln ( '== NIVEAU02 =========================================' );
$baseNiveau02 = $kernel -> getContainer () -> getParameter ( 'ldap_baseniveau02' );
$datas = $em -> createQueryBuilder ()
-> select ( 'table' )
-> from ( 'CadolesCoreBundle:Niveau02' , 'table' )
-> getQuery ()
-> getResult ();
foreach ( $datas as $data ) {
$criteria = '(cn=' . $data -> getLabel () . ')' ;
$subbranch = $baseNiveau02 ;
$results = $ldap -> search ( $criteria , array ( 'cn' ), $subbranch );
// Mise à jour si elle existe
if ( count ( $results ) > 0 ) {
$output -> writeln ( ' - Modification dans annuaire >> ' . $data -> getLabel ());
if ( ! $simulate ) $ldap -> modifyNiveau02 ( $data , $data -> getLabel ());
}
// Sinon création de la fiche
else {
$output -> writeln ( ' - Création dans annuaire >> ' . $data -> getLabel ());
if ( ! $simulate ) $ldap -> addNiveau02 ( $data );
}
}
$output -> writeln ( '' );
$output -> writeln ( '== GROUP ============================================' );
$baseGroup = $kernel -> getContainer () -> getParameter ( 'ldap_basegroup' );
$datas = $em -> createQueryBuilder ()
-> select ( 'table' )
-> from ( 'CadolesCoreBundle:Group' , 'table' )
-> getQuery ()
-> getResult ();
foreach ( $datas as $data ) {
$criteria = '(cn=' . $data -> getLabel () . ')' ;
$subbranch = $baseGroup ;
$results = $ldap -> search ( $criteria , array ( 'cn' ), $subbranch );
// Mise à jour si elle existe
if ( count ( $results ) > 0 ) {
$output -> writeln ( ' - Modification dans annuaire >> ' . $data -> getLabel ());
if ( ! $simulate ) $ldap -> modifyGroup ( $data , $data -> getLabel ());
}
// Sinon création de la fiche
else {
$output -> writeln ( ' - Création dans annuaire >> ' . $data -> getLabel ());
if ( ! $simulate ) $ldap -> addGroup ( $data );
}
}
$output -> writeln ( '' );
$output -> writeln ( '== USER =============================================' );
$baseUser = $kernel -> getContainer () -> getParameter ( 'ldap_baseuser' );
$datas = $em -> createQueryBuilder ()
-> select ( 'table' )
-> from ( 'CadolesCoreBundle:User' , 'table' )
-> getQuery ()
-> getResult ();
foreach ( $datas as $data ) {
$criteria = '(uid=' . $data -> getUsername () . ')' ;
$subbranch = $baseUser ;
$results = $ldap -> search ( $criteria , array ( 'uid' ), $subbranch );
// S'assurer que SIREN correspond au Niveau01
if ( $data -> getNiveau01 () -> getSiren () != $data -> getSiren ()) {
$data -> SetSiren ( $data -> getNiveau01 () -> getSiren ());
$data -> flush ();
}
// S'assurer que SIRET correspond au Niveau02
if ( $data -> getNiveau02 () !== null && $data -> getNiveau01 () -> getSiren () != $data -> getSiren ()) {
$data -> SetSiret ( $data -> getNiveau02 () -> getSiret ());
$data -> flush ();
}
// Mise à jour si elle existe
if ( count ( $results ) > 0 ) {
$output -> writeln ( ' - Modification dans annuaire >> ' . $data -> getUsername ());
if ( ! $simulate ) $ldap -> modifyUser ( $data );
}
// Sinon création de la fiche
else {
$output -> writeln ( ' - Création dans annuaire >> ' . $data -> getUsername ());
if ( ! $simulate ) $ldap -> addUser ( $data );
}
// Rattachement à Niveau01 et Niveau02
if ( ! $simulate ) $ldap -> addGroupUser ( $data );
}
$output -> writeln ( '' );
$output -> writeln ( '== USER GROUP =======================================' );
$baseGroup = $kernel -> getContainer () -> getParameter ( 'ldap_basegroup' );
$datas = $em -> createQueryBuilder ()
-> select ( 'table' )
-> from ( 'CadolesCoreBundle:Group' , 'table' )
-> getQuery ()
-> getResult ();
foreach ( $datas as $data ) {
$criteria = '(cn=' . $data -> getLabel () . ')' ;
$subbranch = $baseGroup ;
$results = $ldap -> search ( $criteria , array ( 'cn' ), $subbranch );
// Mise à jour des membres du groupes
if ( count ( $results ) > 0 ) {
$output -> writeln ( ' - ' . $data -> getLabel ());
$dn = $ldap -> getGroupDN ( $data -> getLabel ());
$attrs [ " memberuid " ] = array ();
$attrs [ " cadolesMember " ] = array ();
foreach ( $data -> getUsers () as $usergroupe ) {
array_push ( $attrs [ " memberuid " ], $usergroupe -> getUser () -> getUsername ());
array_push ( $attrs [ " cadolesMember " ], $ldap -> getUserDN ( $usergroupe -> getUser ()));
$output -> writeln ( ' > ' . $usergroupe -> getUser () -> getUsername ());
}
if ( ! $simulate ) $ldap -> ldapModify ( $dn , $attrs );
}
}
$output -> writeln ( '' );
$output -> writeln ( '=====================================================' );
$output -> writeln ( '== SYNCHONISATION LDAP TO BUNDLE ====================' );
$output -> writeln ( '=====================================================' );
$output -> writeln ( '' );
$output -> writeln ( '== NIVEAU01 =========================================' );
$baseNiveau01 = $kernel -> getContainer () -> getParameter ( 'ldap_baseniveau01' );
$criteria = '(cn=*)' ;
$subbranch = $baseNiveau01 ;
$results = $ldap -> search ( $criteria , array ( 'cn' ), $subbranch );
foreach ( $results as $result ) {
$data = $em -> getRepository ( 'CadolesCoreBundle:Niveau01' ) -> findBy ( array ( 'label' => $result [ " cn " ]));
if ( $data ) $output -> writeln ( ' - Existe dans bundle >> ' . $result [ " cn " ]);
else {
$output -> writeln ( ' - A supprimer dans annuaire >> ' . $result [ " cn " ]);
$dn = $ldap -> getNiveau01DN ( $result [ " cn " ]);
if ( ! $simulate ) $ldap -> deleteByDN ( $dn );
}
}
$output -> writeln ( '' );
$output -> writeln ( '== NIVEAU02 =========================================' );
$baseNiveau02 = $kernel -> getContainer () -> getParameter ( 'ldap_baseniveau02' );
$criteria = '(cn=*)' ;
$subbranch = $baseNiveau02 ;
$results = $ldap -> search ( $criteria , array ( 'cn' ), $subbranch );
foreach ( $results as $result ) {
$data = $em -> getRepository ( 'CadolesCoreBundle:Niveau02' ) -> findBy ( array ( 'label' => $result [ " cn " ]));
if ( $data ) $output -> writeln ( ' - Existe dans bundle >> ' . $result [ " cn " ]);
else {
$output -> writeln ( ' - A supprimer dans annuaire >> ' . $result [ " cn " ]);
$dn = $ldap -> getNiveau02DN ( $result [ " cn " ]);
if ( ! $simulate ) $ldap -> deleteByDN ( $dn );
}
}
$output -> writeln ( '' );
$output -> writeln ( '== GROUP ============================================' );
$baseGroup = $kernel -> getContainer () -> getParameter ( 'ldap_basegroup' );
$criteria = '(cn=*)' ;
$subbranch = $baseGroup ;
$results = $ldap -> search ( $criteria , array ( 'cn' ), $subbranch );
foreach ( $results as $result ) {
$data = $em -> getRepository ( 'CadolesCoreBundle:Group' ) -> findBy ( array ( 'label' => $result [ " cn " ]));
if ( $data ) $output -> writeln ( ' - Existe dans bundle >> ' . $result [ " cn " ]);
else {
$output -> writeln ( ' - A supprimer dans annuaire >> ' . $result [ " cn " ]);
$dn = $ldap -> getGroupDN ( $result [ " cn " ]);
if ( ! $simulate ) $ldap -> deleteByDN ( $dn );
}
}
$output -> writeln ( '' );
$output -> writeln ( '== USER =============================================' );
$baseUser = $kernel -> getContainer () -> getParameter ( 'ldap_baseuser' );
$criteria = '(uid=*)' ;
$subbranch = $baseUser ;
$results = $ldap -> search ( $criteria , array ( 'uid' ), $subbranch );
foreach ( $results as $result ) {
$data = $em -> getRepository ( 'CadolesCoreBundle:User' ) -> findBy ( array ( 'username' => $result [ " uid " ]));
if ( $data ) $output -> writeln ( ' - Existe dans bundle >> ' . $result [ " uid " ]);
else {
$output -> writeln ( ' - A supprimer dans annuaire >> ' . $result [ " uid " ]);
$dn = 'uid=' . $result [ " uid " ] . ',' . $baseUser ;
if ( ! $simulate ) $ldap -> deleteByDN ( $dn );
}
}
}
2019-03-12 14:50:57 +01:00
2018-12-18 09:44:39 +01:00
$output -> writeln ( '' );
$output -> writeln ( '=====================================================' );
$output -> writeln ( '== SYNCHONISATION BUNDLE TO EPORTAIL ================' );
$output -> writeln ( '=====================================================' );
$eportail = $kernel -> getContainer () -> get ( 'cadoles.core.service.eportail' );
if ( ! $eportail -> isEnabled ()) {
$output -> writeln ( '' );
$output -> writeln ( ' Synchronisation ePortail désactivée' );
}
else {
$output -> writeln ( '' );
$output -> writeln ( '== NIVEAU01 =========================================' );
$datas = $em -> createQueryBuilder ()
-> select ( 'table' )
-> from ( 'CadolesCoreBundle:Niveau01' , 'table' )
-> getQuery ()
-> getResult ();
foreach ( $datas as $data ) {
$output -> writeln ( ' - Synchronisation eportail >> ' . $data -> getLabel ());
if ( ! $simulate ) $eportail -> syncNiveau01 ( $data , $data -> getLabel ());
}
$output -> writeln ( '' );
$output -> writeln ( '== NIVEAU02 =========================================' );
$datas = $em -> createQueryBuilder ()
-> select ( 'table' )
-> from ( 'CadolesCoreBundle:Niveau02' , 'table' )
-> getQuery ()
-> getResult ();
foreach ( $datas as $data ) {
$output -> writeln ( ' - Synchronisation eportail >> ' . $data -> getLabel ());
if ( ! $simulate ) $eportail -> syncNiveau02 ( $data , $data -> getLabel ());
}
$output -> writeln ( '' );
$output -> writeln ( '== GROUP ============================================' );
$datas = $em -> createQueryBuilder ()
-> select ( 'table' )
-> from ( 'CadolesCoreBundle:Group' , 'table' )
-> getQuery ()
-> getResult ();
foreach ( $datas as $data ) {
$output -> writeln ( ' - Synchronisation eportail >> ' . $data -> getLabel ());
if ( ! $simulate ) $eportail -> syncGroup ( $data , $data -> getLabel ());
}
$output -> writeln ( '' );
$output -> writeln ( '== USER =============================================' );
$datas = $em -> createQueryBuilder ()
-> select ( 'table' )
-> from ( 'CadolesCoreBundle:User' , 'table' )
-> getQuery ()
-> getResult ();
foreach ( $datas as $data ) {
$output -> writeln ( ' - Synchronisation eportail >> ' . $data -> getUsername ());
if ( ! $simulate ) $eportail -> syncUser ( $data );
}
$output -> writeln ( '' );
$output -> writeln ( '=====================================================' );
$output -> writeln ( '== SYNCHONISATION EPORTAIL TO BUNDLE ================' );
$output -> writeln ( '=====================================================' );
$dbeportail = $kernel -> getContainer () -> get ( 'service_container' ) -> get ( 'doctrine.orm.eportail_entity_manager' ) -> getConnection ();
$output -> writeln ( '' );
$output -> writeln ( '== GROUP ============================================' );
$sql = " SELECT * FROM env_group WHERE group_id>0 " ;
$query = $dbeportail -> prepare ( $sql );
$query -> execute ();
while ( $row = $query -> fetch ()){
$fgOK = false ;
if ( strpos ( $row [ " group_name " ], $labelniveau01 . ' = ' ) === 0 ) {
$tmp = str_replace ( " $labelniveau01 = " , " " , $row [ " group_name " ]);
$data = $em -> getRepository ( 'CadolesCoreBundle:Niveau01' ) -> findBy ( array ( 'label' => $tmp ));
if ( $data ) {
$fgOK = true ;
$output -> writeln ( ' - Existe dans bundle >> ' . $row [ " group_name " ]);
}
}
if ( strpos ( $row [ " group_name " ], $labelniveau02 . ' = ' ) === 0 ) {
$tmp = str_replace ( " $labelniveau01 = " , " " , $row [ " group_name " ]);
$data = $em -> getRepository ( 'CadolesCoreBundle:Niveau02' ) -> findBy ( array ( 'label' => $tmp ));
if ( $data ) {
$fgOK = true ;
$output -> writeln ( ' - Existe dans bundle >> ' . $row [ " group_name " ]);
}
}
if ( strpos ( $row [ " group_name " ], 'GROUPE = ' ) === 0 ) {
$tmp = str_replace ( " GROUPE = " , " " , $row [ " group_name " ]);
$data = $em -> getRepository ( 'CadolesCoreBundle:Group' ) -> findBy ( array ( 'label' => $tmp ));
if ( $data ) {
$fgOK = true ;
$output -> writeln ( ' - Existe dans bundle >> ' . $row [ " group_name " ]);
}
}
if ( ! $fgOK ) {
$output -> writeln ( ' - A supprimer dans eportail >> ' . $row [ " group_name " ]);
if ( ! $simulate ) delGroup ( $row [ " group_id " ]);
}
}
$output -> writeln ( '' );
$output -> writeln ( '== USER =============================================' );
$sql = " SELECT * FROM env_user WHERE user_id>0 " ;
$query = $dbeportail -> prepare ( $sql );
$query -> execute ();
while ( $row = $query -> fetch ()){
$data = $em -> getRepository ( 'CadolesCoreBundle:User' ) -> findBy ( array ( 'username' => $row [ " user_login " ]));
if ( $data ) $output -> writeln ( ' - Existe dans bundle >> ' . $row [ " user_login " ]);
else {
$output -> writeln ( ' - A supprimer dans eportail >> ' . $row [ " user_login " ]);
if ( ! $simulate ) delUser ( $row [ " user_id " ]);
}
}
}
$output -> writeln ( '' );
$output -> writeln ( '' );
}
protected static function determineKernelRootDir ( Event $event ) {
$extra = $event -> getComposer () -> getPackage () -> getExtra ();
$rootdir = rtrim ( getcwd (), '/' );
return $rootdir . '/' . trim ( $extra [ 'symfony-app-dir' ], '/' );
}
2019-03-12 14:50:57 +01:00
protected static function addmodGroup ( $em , $label , $ldapfilter ) {
$group = $em -> getRepository ( 'CadolesCoreBundle:Group' ) -> findOneBy ( array ( 'fgtemplate' => true , 'label' => $label ));
if ( ! $group ) {
$group = new Group ();
}
$group -> setLabel ( $label );
$group -> setFgopen ( false );
$group -> setFgall ( false );
$group -> setLdapfilter ( $ldapfilter );
$group -> setFgtemplate ( true );
$em -> persist ( $group );
$em -> flush ();
}
protected static function addtoGroup ( $em , $user , $group ) {
$member = $em -> getRepository ( 'CadolesCoreBundle:UserGroup' ) -> findOneBy ( array ( 'group' => $group , 'user' => $user ));
if ( ! $member ) {
$member = new UserGroup ();
$member -> setGroup ( $group );
$member -> setUser ( $user );
$em -> persist ( $member );
$em -> flush ();
}
}
protected static function addUser ( $em , $niveau01 , $username , $firstname , $lastname , $email , $usersadmin ) {
$user = new User ();
$user -> setUsername ( $username );
$user -> setLastname ( $lastname );
$user -> setFirstname ( $firstname );
$user -> setEmail ( $email );
$user -> setNiveau01 ( $niveau01 );
$user -> setSiren ( $niveau01 -> getSiren ());
$user -> setPassword ( " PASSWORDFROMEXTERNE " );
$user -> setVisible ( true );
$user -> setAuthlevel ( " simple " );
$user -> setBelongingpopulation ( " agent " );
if ( in_array ( $username , $usersadmin ))
$user -> setRole ( " ROLE_ADMIN " );
else
$user -> setRole ( " ROLE_USER " );
$em -> persist ( $user );
$em -> flush ();
}
protected static function modUser ( $em , $user , $username , $firstname , $lastname , $email , $usersadmin ) {
$user -> setLastname ( $lastname );
$user -> setFirstname ( $firstname );
$user -> setEmail ( $email );
if ( in_array ( $username , $usersadmin ))
$user -> setRole ( " ROLE_ADMIN " );
$em -> persist ( $user );
$em -> flush ();
}
2018-12-18 09:44:39 +01:00
}