purge des groupes inexistant dans l'annuaire

This commit is contained in:
afornerot 2020-07-15 15:08:42 +02:00
parent fb879143d5
commit 2c1078d19e
2 changed files with 57 additions and 1 deletions

View File

@ -379,6 +379,62 @@ class SynchroCommand extends Command
$this->em->clear();
if($nbusers%1000==0) $this->writelnred(" == Nombre d'utilisateurs traités = $nbusers==");
}
$this->writeln('');
$this->writeln('== GROUPS ============================================');
// Pour chaque groupe annuaire on s'assure que le groupe existe bien dans l'annuaire
$groups=$this->em->getRepository('CadolesCoreBundle:Group')->findBy(["fgtemplate"=>true]);
foreach($groups as $group) {
if(stripos($group->getLabel(),"PROFIL - ")===false) {
$results = $this->ldap->search($group->getLdapfilter(), [], $this->ldap_basedn);
if(count($results)==0) {
$this->writeln(" - Suppression dans Bundle >> ".$group->getLabel());
if(!$simulate) {
if($group->getFgcanshare()) {
// Sur l'ensemble des pages liés
$pages=$group->getPages();
foreach($pages as $page) {
$getgroups=$page->getGroups();
// si la page est lié qu'à un seul group on peut la supprimer
if($getgroups->count()==1)
$this->em->remove($page);
}
// Sur l'ensemble des calendar liés
$calendars=$group->getCalendars();
foreach($calendars as $calendar) {
$getgroups=$calendar->getGroups();
// si la page est lié qu'à un seul group on peut la supprimer
if($getgroups->count()==1)
$this->em->remove($calendar);
}
// Sur l'ensemble des blog liés
$blogs=$group->getBlogs();
foreach($blogs as $blog) {
$getgroups=$blog->getGroups();
// si la page est lié qu'à un seul group on peut la supprimer
if($getgroups->count()==1)
$this->em->remove($blog);
}
// Sur l'ensemble des project liés
$projects=$group->getProjects();
foreach($projects as $project) {
$getgroups=$project->getGroups();
// si la page est lié qu'à un seul group on peut la supprimer
if($getgroups->count()==1)
$this->em->remove($project);
}
}
$this->em->remove($group);
$this->em->flush();
}
}
}
}
}
}
else {

View File

@ -958,7 +958,7 @@ class GroupController extends Controller
// Sur l'ensemble des project liés
$projects=$data->getProjects();
foreach($projects as $project) {
$groups=$blog->getGroups();
$groups=$project->getGroups();
// si la page est lié qu'à un seul group on peut la supprimer
if($groups->count()==1)
$em->remove($project);