Compare commits
3 Commits
203b658726
...
master
Author | SHA1 | Date | |
---|---|---|---|
123e438123 | |||
62d32fbdb1 | |||
1faf9935b9 |
1
debian/compat
vendored
1
debian/compat
vendored
@ -1 +0,0 @@
|
||||
7
|
24
debian/control
vendored
24
debian/control
vendored
@ -1,24 +0,0 @@
|
||||
Source: eole-nineschool
|
||||
Section: web
|
||||
Priority: optional
|
||||
Maintainer: Equipe Envole <eole@ac-dijon.fr>
|
||||
Build-Depends: debhelper (>= 7.0.50)
|
||||
Standards-Version: 3.8.4
|
||||
Homepage: http://eole.orion.education.fr/diff/
|
||||
Vcs-Git: http://dev-eole.ac-dijon.fr/git/nineschool
|
||||
Vcs-Browser: http://dev-eole.ac-dijon.fr/projects/nineschool/repository
|
||||
|
||||
Package: nineschool-sso
|
||||
Architecture: all
|
||||
Depends: ${misc:Depends}, eole-sso
|
||||
Description: Filtre SSO pour nineschool "EOLE".
|
||||
|
||||
Package: eole-nineschool
|
||||
Architecture: all
|
||||
Depends: ${misc:Depends}, eole-envole-dependances, nineschool-sso
|
||||
Description: Eolisation de l'application nineschool.
|
||||
|
||||
Package: nineschool-apps
|
||||
Architecture: all
|
||||
Depends: ${misc:Depends}, envole-dependances-apps
|
||||
Description: Sources pour nineschool "EOLE".
|
44
debian/copyright
vendored
44
debian/copyright
vendored
@ -1,44 +0,0 @@
|
||||
Format: http://dep.debian.net/deps/dep5
|
||||
Upstream-Name: {PROJECT}
|
||||
Source: {URL}
|
||||
|
||||
Files: *
|
||||
Copyright: YEAR {UPSTREAM} {AUTHOR} <{MAIL}>
|
||||
License: {UPSTREAM LICENSE}
|
||||
|
||||
Files: debian/*
|
||||
Copyright: 2012 Équipe EOLE <eole@ac-dijon.fr>
|
||||
License: CeCILL-2
|
||||
|
||||
License: {UPSTREAM LICENSE}
|
||||
{TEXT OF THE LICENSE}
|
||||
|
||||
License: CeCILL-2
|
||||
This software is governed by the CeCILL-2 license under French law and
|
||||
abiding by the rules of distribution of free software. You can use,
|
||||
modify and or redistribute the software under the terms of the CeCILL-2
|
||||
license as circulated by CEA, CNRS and INRIA at the following URL
|
||||
"http://www.cecill.info";.
|
||||
.
|
||||
As a counterpart to the access to the source code and rights to copy,
|
||||
modify and redistribute granted by the license, users are provided only
|
||||
with a limited warranty and the software's author, the holder of the
|
||||
economic rights, and the successive licensors have only limited
|
||||
liability.
|
||||
.
|
||||
In this respect, the user's attention is drawn to the risks associated
|
||||
with loading, using, modifying and/or developing or reproducing the
|
||||
software by the user in light of its specific status of free software,
|
||||
that may mean that it is complicated to manipulate, and that also
|
||||
therefore means that it is reserved for developers and experienced
|
||||
professionals having in-depth computer knowledge. Users are therefore
|
||||
encouraged to load and test the software's suitability as regards their
|
||||
requirements in conditions enabling the security of their systems and/or
|
||||
data to be ensured and, more generally, to use and operate it in the
|
||||
same conditions as regards security.
|
||||
.
|
||||
The fact that you are presently reading this means that you have had
|
||||
knowledge of the CeCILL-2 license and that you accept its terms.
|
||||
.
|
||||
On Eole systems, the complete text of the CeCILL-2 License can be found
|
||||
in '/usr/share/common-licenses/CeCILL-2-en'.
|
1
debian/eole-nineschool.install
vendored
1
debian/eole-nineschool.install
vendored
@ -1 +0,0 @@
|
||||
usr/share/eole
|
3
debian/gbp.conf
vendored
3
debian/gbp.conf
vendored
@ -1,3 +0,0 @@
|
||||
# Set per distribution debian tag
|
||||
[DEFAULT]
|
||||
debian-tag = debian/envole/%(version)s
|
2
debian/nineschool-apps.install
vendored
2
debian/nineschool-apps.install
vendored
@ -1,2 +0,0 @@
|
||||
var/www/html
|
||||
etc
|
1
debian/nineschool-sso.install
vendored
1
debian/nineschool-sso.install
vendored
@ -1 +0,0 @@
|
||||
usr/share/sso
|
8
debian/rules
vendored
8
debian/rules
vendored
@ -1,8 +0,0 @@
|
||||
#!/usr/bin/make -f
|
||||
# -*- makefile -*-
|
||||
|
||||
# Uncomment this to turn on verbose mode.
|
||||
#export DH_VERBOSE=1
|
||||
|
||||
%:
|
||||
dh $@
|
1
debian/source/format
vendored
1
debian/source/format
vendored
@ -1 +0,0 @@
|
||||
3.0 (native)
|
@ -7,22 +7,17 @@ use Symfony\Component\Console\Input\InputArgument;
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
use Symfony\Component\DependencyInjection\ContainerInterface;
|
||||
use Doctrine\ORM\EntityManagerInterface;
|
||||
use Symfony\Component\Routing\RouterInterface;
|
||||
use Symfony\Component\Filesystem\Filesystem;
|
||||
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
|
||||
use Symfony\Component\Security\Core\Encoder\EncoderFactory;
|
||||
use Symfony\Component\Security\Core\Encoder\MessageDigestPasswordEncoder;
|
||||
use Ramsey\Uuid\Uuid;
|
||||
|
||||
use App\Entity\Group as Group;
|
||||
use App\Entity\User as User;
|
||||
use App\Entity\Answer as Answer;
|
||||
use App\Entity\Message as Message;
|
||||
|
||||
use App\Service\mailService;
|
||||
use App\Entity\Group;
|
||||
use App\Entity\User;
|
||||
|
||||
class SynchroUsersCommand extends Command
|
||||
{
|
||||
private $container;
|
||||
private $router;
|
||||
private $em;
|
||||
private $output;
|
||||
private $filesystem;
|
||||
@ -30,15 +25,12 @@ class SynchroUsersCommand extends Command
|
||||
private $ldap;
|
||||
private $ldap_basedn;
|
||||
private $ldapgroups=[];
|
||||
private $mail;
|
||||
|
||||
public function __construct(ContainerInterface $container,EntityManagerInterface $em,RouterInterface $router, mailService $mail)
|
||||
public function __construct(ContainerInterface $container,EntityManagerInterface $em)
|
||||
{
|
||||
parent::__construct();
|
||||
$this->container = $container;
|
||||
$this->em = $em;
|
||||
$this->router = $router;
|
||||
$this->mail = $mail;
|
||||
}
|
||||
|
||||
protected function configure()
|
||||
@ -110,6 +102,17 @@ class SynchroUsersCommand extends Command
|
||||
$ldapusers = array();
|
||||
$ldapmails = array();
|
||||
|
||||
// Suppression des groupe ninegate
|
||||
$groups=$this->em->getRepository("App:Group")->findAll();
|
||||
foreach($groups as $group) {
|
||||
if($group->getIdexternal()) {
|
||||
$this->writeln(" - Suppression dans Bundle >> ".$group->getName());
|
||||
if(!$simulate) {
|
||||
$this->em->remove($group);
|
||||
$this->em->flush();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if($ldap_model=="scribe") {
|
||||
$this->writeln('');
|
||||
@ -155,6 +158,32 @@ class SynchroUsersCommand extends Command
|
||||
if(!$simulate) $this->addmodGroup($label,$ldapfilter,true);
|
||||
}
|
||||
|
||||
// Elèves des Classes
|
||||
$this->writeln('');
|
||||
$this->writeln('== ELEVES DES CLASSES ==========================================');
|
||||
$results = $this->ldap->search("type=Classe", ['cn','description','gidNumber'], $this->ldap_basedn);
|
||||
foreach($results as $result) {
|
||||
$cn=$result["cn"];
|
||||
$ldapfilter="(&(type=Classe)(cn=$cn))";
|
||||
|
||||
$label="ELEVES - ".$result["cn"];
|
||||
$this->writeln(" - $label");
|
||||
if(!$simulate) $this->addmodGroup($label,$ldapfilter,false);
|
||||
}
|
||||
|
||||
// Professeurs des Classes
|
||||
$this->writeln('');
|
||||
$this->writeln('== PROFESSEURS DES CLASSES ==========================================');
|
||||
$results = $this->ldap->search("type=Classe", ['cn','description','gidNumber'], $this->ldap_basedn);
|
||||
foreach($results as $result) {
|
||||
$cn=$result["cn"];
|
||||
$ldapfilter="(|(&(type=Equipe)(cn=profs-$cn))(&(ENTPersonProfils=Administratif)(divcod=$cn)))";
|
||||
|
||||
$label="PROFESSEURS - ".$result["cn"];
|
||||
$this->writeln(" - $label");
|
||||
if(!$simulate) $this->addmodGroup($label,$ldapfilter,false);
|
||||
}
|
||||
|
||||
// Options
|
||||
$this->writeln('');
|
||||
$this->writeln('== OPTIONS ==========================================');
|
||||
@ -387,15 +416,6 @@ class SynchroUsersCommand extends Command
|
||||
$this->writeln('== GROUPS ============================================');
|
||||
$groups=$this->em->getRepository("App:Group")->findAll();
|
||||
foreach($groups as $group) {
|
||||
if($group->getIdexternal()) {
|
||||
$this->writeln(" - Suppression dans Bundle >> ".$group->getName());
|
||||
if(!$simulate) {
|
||||
$this->em->remove($group);
|
||||
$this->em->flush();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
if(!$group->getLdapfilter()) continue;
|
||||
|
||||
if(!in_array($group->getId(),$this->ldapgroups)) {
|
||||
@ -424,12 +444,25 @@ class SynchroUsersCommand extends Command
|
||||
$this->writeln('== SYNCHONISATION NINEGATE TO BUNDLE ================');
|
||||
$this->writeln('=====================================================');
|
||||
|
||||
|
||||
// Suppression des groupe annuaire
|
||||
$groups=$this->em->getRepository("App:Group")->findAll();
|
||||
foreach($groups as $group) {
|
||||
if($group->getLdapfilter()) {
|
||||
$this->writeln(" - Suppression dans Bundle >> ".$group->getName());
|
||||
if(!$simulate) {
|
||||
$this->em->remove($group);
|
||||
$this->em->flush();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$appmasterurl = $this->container->getParameter("appMasterurl");
|
||||
$appmasterkey = $this->container->getParameter("appMasterkey");
|
||||
|
||||
// Généraltion de l'urol de communication
|
||||
if(stripos($appmasterurl,"/")===0) {
|
||||
$url="https://".$this->container->getParameter("appWeburl").$appmasterurl;
|
||||
$url="http://".$this->container->getParameter("appWeburl").$appmasterurl;
|
||||
}
|
||||
else
|
||||
$url=$appmasterurl;
|
||||
@ -568,7 +601,7 @@ class SynchroUsersCommand extends Command
|
||||
$this->writeln($group->getName());
|
||||
|
||||
$usergroups=[];
|
||||
if(array_key_exists($group->getIdexternal(),$tabgroups)&&$tabgroups[$group->getIdexternal()])
|
||||
if($tabgroups[$group->getIdexternal()])
|
||||
$usergroups = $tabgroups[$group->getIdexternal()]["users"];
|
||||
$tbusers=[];
|
||||
foreach($usergroups as $user) {
|
||||
@ -599,12 +632,6 @@ class SynchroUsersCommand extends Command
|
||||
$this->em->persist($group);
|
||||
$this->em->flush();
|
||||
|
||||
// On s'assure que l'ensemble des activité active soit bien distribué en fonction
|
||||
$activitys=$this->em->getRepository("App:Activity")->findAllGroupActivityActive($group,true);
|
||||
foreach($activitys as $activity) {
|
||||
$this->initAnswer($activity);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
$this->writeln('');
|
||||
@ -637,15 +664,6 @@ class SynchroUsersCommand extends Command
|
||||
$this->writeln('== GROUPS ============================================');
|
||||
$groups=$this->em->getRepository("App:Group")->findAll();
|
||||
foreach($groups as $group) {
|
||||
if($group->getLdapfilter()) {
|
||||
$this->writeln(" - Suppression dans Bundle >> ".$group->getName());
|
||||
if(!$simulate) {
|
||||
$this->em->remove($group);
|
||||
$this->em->flush();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
if(!$group->getIdexternal()) continue;
|
||||
|
||||
if(!in_array($group->getIdexternal(),$lstgroups)) {
|
||||
@ -696,13 +714,15 @@ class SynchroUsersCommand extends Command
|
||||
|
||||
protected function addUser($username,$firstname,$lastname,$email,$usersadmin) {
|
||||
$user = new User();
|
||||
$key = Uuid::uuid4();
|
||||
|
||||
$user->setUsername($username);
|
||||
$user->setPassword("NOPASSWORD");
|
||||
$user->setLastname($lastname);
|
||||
$user->setFirstname($firstname);
|
||||
$user->setEmail($email);
|
||||
|
||||
$user->setApiKey($key);
|
||||
|
||||
// Definition du role
|
||||
if(in_array($username,$usersadmin))
|
||||
$role="ROLE_ADMIN";
|
||||
@ -746,48 +766,4 @@ class SynchroUsersCommand extends Command
|
||||
$this->em->flush();
|
||||
}
|
||||
|
||||
protected function initAnswer($activity) {
|
||||
$em = $this->em;
|
||||
|
||||
// Pour chaque élève
|
||||
$group=$activity->getGroup();
|
||||
foreach($group->getUsers() as $user) {
|
||||
// Existe-t-il une réponse pour l'élève
|
||||
if($user->hasRole("ROLE_USER")) {
|
||||
$answer=$em->getRepository("App:Answer")->findOneBy(["user"=>$user,"activity"=>$activity]);
|
||||
if(!$answer) {
|
||||
$answer=new Answer;
|
||||
$answer->setActivity($activity);
|
||||
$answer->setUser($user);
|
||||
$answer->setStatus(-1);
|
||||
|
||||
$em->persist($answer);
|
||||
$em->flush();
|
||||
|
||||
// Message
|
||||
$message=new Message;
|
||||
$message->setMessage("Distribution de l'Activité");
|
||||
$message->setDeletable(false);
|
||||
$message->setUser($activity->getUser());
|
||||
$message->setAnswer($answer);
|
||||
$message->addReader($activity->getUser());
|
||||
|
||||
$em->persist($message);
|
||||
$em->flush();
|
||||
|
||||
// Notification par mail de la distribution de l'activité
|
||||
$to = $user->getEmail();
|
||||
$from = $activity->getUser()->getEmail();
|
||||
$subject="Nineschool : Nouvelle Activité à réaliser";
|
||||
$body ="Activité = ".$activity->getName()."<br>";
|
||||
$body.="Professeur = ".$activity->getUser()->getDisplayname()."<br>";
|
||||
$body.="Matière = ".$activity->getSubject()."<br>";
|
||||
$body.="Url = ".$this->router->generate('app_answer_update', ["id"=>$answer->getId()], UrlGeneratorInterface::ABSOLUTE_URL);
|
||||
|
||||
$this->mail->sendEmail($subject, $body, $to, $from);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -76,8 +76,8 @@ LDAP_USERNAME=uid
|
||||
LDAP_FIRSTNAME=givenname
|
||||
LDAP_LASTNAME=sn
|
||||
LDAP_EMAIL=mail
|
||||
LDAP_FILTERGROUP=(cn=*)
|
||||
LDAP_FILTERUSER=(uid=*)
|
||||
LDAP_FILTERGROUP='(&(ObjectClass=posixGroup)(cn=*))'
|
||||
LDAP_FILTERUSER='(&(ObjectClass=person)(uid=*))'
|
||||
%else
|
||||
LDAP_USERNAME=%%nineschool_ldapuid
|
||||
LDAP_FIRSTNAME=%%nineschool_ldapfirstname
|
||||
|
Reference in New Issue
Block a user