purge des groupes inexistant dans l'annuaire
This commit is contained in:
parent
fb879143d5
commit
2c1078d19e
@ -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 {
|
||||
|
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user