diff --git a/src/ninegate-1.0/src/Cadoles/CoreBundle/Command/data/core-init-01.sql b/src/ninegate-1.0/src/Cadoles/CoreBundle/Command/data/core-init-01.sql index 8dfd6efd..19653747 100644 --- a/src/ninegate-1.0/src/Cadoles/CoreBundle/Command/data/core-init-01.sql +++ b/src/ninegate-1.0/src/Cadoles/CoreBundle/Command/data/core-init-01.sql @@ -8,7 +8,7 @@ INSERT IGNORE INTO `niveau01` (`id`, `label`, `siren`) VALUES (-100, 'DRAAF', '130007107'); INSERT IGNORE INTO `user` (`id`, `niveau01_id`, `username`, `firstname`, `lastname`, `password`, `email`, `avatar`, `role`,`siren`,`authlevel`) VALUES -(-100, -100, 'admin', 'Administrateur', 'draaf', '{SSHA}KYFkIhUXbGQ8luMLxpsdl5OtVq4aZ/GN +(-100, -100, 'admin', 'Administrateur', 'draaf', '{SSHA}otHXvfP0WOEFQYGgcJCVwAZ8h4HHrHOP ', 'admin@ldapbundle.ac-arno.fr', 'admin.jpg', 'ROLE_ADMIN', '130007107', 'simple'); @@ -32,14 +32,15 @@ INSERT IGNORE INTO `sidebar` (`id`, `parent_id`, `roworder`, `label`, `path`, `f (1270, 1200, 1270, 'Import Utilisateurs', 'cadoles_core_config_importuser', 'fa-download', 'ROLE_ADMIN,ROLE_MODO', 'importuser_activate'), (1500, NULL, 1500, 'PORTAIL', NULL, 'fa-cubes', 'ROLE_ADMIN,ROLE_MODO', 'portal_activate'), -(1510, 1500, 1510, 'Pages', 'cadoles_portal_config_page', 'fa-file', 'ROLE_ADMIN,ROLE_MODO', 'portal_activate'), -(1520, 1500, 1520, 'Items', 'cadoles_portal_config_item', 'fa-desktop', 'ROLE_ADMIN,ROLE_MODO', 'portal_activate'), -(1530, 1500, 1530, 'Annonces', 'cadoles_portal_config_alert', 'fa-bell', 'ROLE_ADMIN,ROLE_MODO', 'portal_activate'), -(1540, 1500, 1540, 'Calendriers', 'cadoles_portal_config_calendar', 'fa-calendar', 'ROLE_ADMIN,ROLE_MODO', 'portal_activate'), -(1550, 1500, 1550, 'Blogs', 'cadoles_portal_config_blog', 'fa-paper-plane', 'ROLE_ADMIN,ROLE_MODO', 'portal_activate'), -(1560, 1500, 1560, 'Flux', 'cadoles_portal_config_flux', 'fa-rss', 'ROLE_ADMIN,ROLE_MODO', 'portal_activate'), -(1570, 1500, 1570, 'Chartes', 'cadoles_portal_config_notice', 'fa-info', 'ROLE_ADMIN,ROLE_MODO', 'portal_activate'), -(1580, 1500, 1580, 'Icônes', 'cadoles_portal_config_icon', 'fa-bug', 'ROLE_ADMIN,ROLE_MODO', 'portal_activate'), +(1510, 1500, 1510, 'Modèles de Page', 'cadoles_portal_config_pagetemplate', 'fa-copy', 'ROLE_ADMIN,ROLE_MODO', 'portal_activate'), +(1520, 1500, 1520, 'Pages', 'cadoles_portal_config_page', 'fa-file', 'ROLE_ADMIN,ROLE_MODO', 'portal_activate'), +(1530, 1500, 1530, 'Items', 'cadoles_portal_config_item', 'fa-desktop', 'ROLE_ADMIN,ROLE_MODO', 'portal_activate'), +(1540, 1500, 1540, 'Annonces', 'cadoles_portal_config_alert', 'fa-bell', 'ROLE_ADMIN,ROLE_MODO', 'portal_activate'), +(1550, 1500, 1550, 'Calendriers', 'cadoles_portal_config_calendar', 'fa-calendar', 'ROLE_ADMIN,ROLE_MODO', 'portal_activate'), +(1560, 1500, 1560, 'Blogs', 'cadoles_portal_config_blog', 'fa-paper-plane', 'ROLE_ADMIN,ROLE_MODO', 'portal_activate'), +(1570, 1500, 1570, 'Flux', 'cadoles_portal_config_flux', 'fa-rss', 'ROLE_ADMIN,ROLE_MODO', 'portal_activate'), +(1580, 1500, 1580, 'Chartes', 'cadoles_portal_config_notice', 'fa-info', 'ROLE_ADMIN,ROLE_MODO', 'portal_activate'), +(1590, 1500, 1590, 'Icônes', 'cadoles_portal_config_icon', 'fa-bug', 'ROLE_ADMIN,ROLE_MODO', 'portal_activate'), (2500, NULL, 2500, 'MODULES', NULL, 'fa-cubes', 'ROLE_ADMIN,ROLE_MODO', 'module_activate'), (2510, 2500, 2510, 'Pages', 'cadoles_portal_config_page', 'fa-file', 'ROLE_ADMIN,ROLE_MODO', 'page_activate'), @@ -103,6 +104,7 @@ INSERT IGNORE permmodo (`route`, `visible`) VALUES ('cadoles_core_config_registration',1), ('cadoles_core_config_user',1), ('cadoles_core_config_importuser',0), +('cadoles_portal_config_pagetemplate',1), ('cadoles_portal_config_page',1), ('cadoles_portal_config_item',1), ('cadoles_portal_config_alert',1), diff --git a/src/ninegate-1.0/src/Cadoles/CoreBundle/Controller/CoreController.php b/src/ninegate-1.0/src/Cadoles/CoreBundle/Controller/CoreController.php index f5ee912c..92d7fe32 100644 --- a/src/ninegate-1.0/src/Cadoles/CoreBundle/Controller/CoreController.php +++ b/src/ninegate-1.0/src/Cadoles/CoreBundle/Controller/CoreController.php @@ -107,7 +107,7 @@ class CoreController extends Controller // Calcul des pages de l'utilisateur - $this->getDoctrine()->getRepository("CadolesPortalBundle:Page")->getPagesUser($user,$id,$entity,$pagesuser,$pagesadmin,$pagesshared); + $this->getDoctrine()->getRepository("CadolesPortalBundle:Page")->getPagesUser($user,$id,$entity,$pagesuser,$pagesadmin,$groupsshared); // si aucune page = page par défaut if(!$entity) { @@ -126,9 +126,9 @@ class CoreController extends Controller 'access' => "user", 'pagesadmin' => $pagesadmin, 'pagesuser' => $pagesuser, - 'pagesshared' => $pagesshared, + 'groupsshared' => $groupsshared, 'canadd' => $this->get('session')->get('cancreatepage'), - 'widgets' => $this->getDoctrine()->getRepository("CadolesPortalBundle:Widget")->findAll() + 'widgets' => $this->getDoctrine()->getRepository("CadolesPortalBundle:Widget")->getWidgetAccess("user") ]); } diff --git a/src/ninegate-1.0/src/Cadoles/CoreBundle/Controller/GroupController.php b/src/ninegate-1.0/src/Cadoles/CoreBundle/Controller/GroupController.php index d7fbe4dd..ee5df9a1 100644 --- a/src/ninegate-1.0/src/Cadoles/CoreBundle/Controller/GroupController.php +++ b/src/ninegate-1.0/src/Cadoles/CoreBundle/Controller/GroupController.php @@ -8,11 +8,14 @@ use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpFoundation\JsonResponse; use Symfony\Component\Form\FormError; +use Ramsey\Uuid\Uuid; use Cadoles\CoreBundle\Entity\Group; use Cadoles\CoreBundle\Entity\Usergroup; use Cadoles\CoreBundle\Entity\Usermodo; use Cadoles\CoreBundle\Form\GroupType; +use Cadoles\PortalBundle\Entity\Calendar; +use Cadoles\PortalBundle\Entity\Blog; class GroupController extends Controller { @@ -289,6 +292,7 @@ class GroupController extends Controller $search= $request->query->get('search'); $draw= $request->query->get('draw'); $order= $request->query->get('order'); + $fgcanshare= $request->query->get('fgcanshare'); // Nombre total d'enregistrement $qb = $em->createQueryBuilder(); @@ -380,6 +384,7 @@ class GroupController extends Controller $datas=$qb->setFirstResult($start)->setMaxResults($length)->getQuery()->getResult(); foreach($datas as $data) { + // Action $action = ""; if($group->getLdapfilter()==""&&$group->getAttributes()=="") @@ -387,8 +392,17 @@ class GroupController extends Controller // Avatar $avatar="getAvatar()."' style='width:30px;background-color:#337ab7;margin:auto;display:block;'>"; + + // Flag manager + $fgmanager=""; + if($fgcanshare) { + $usergroup=$em->getRepository("CadolesCoreBundle:UserGroup")->findOneBy(["user"=>$data->getId(),"group"=>$id]); + $checked=($usergroup->getFgmanager()?"checked":""); + $fgmanager=""; + } + - array_push($output["data"],array("DT_RowId"=>"user".$data->getId(),$action,$avatar,$data->getUsername(),$data->getEmail())); + array_push($output["data"],array("DT_RowId"=>"user".$data->getId(),$action,$avatar,$data->getUsername(),$data->getEmail(),$fgmanager)); } // Retour @@ -449,15 +463,41 @@ class GroupController extends Controller return $response; } - public function submitAction(Request $request) + public function switchmanagerAction(Request $request) { + // S'assurer que c'est un appel ajax + if (!$request->isXmlHttpRequest()) { + return new JsonResponse(array('message' => 'Interdit'), 400); + } + + $em = $this->getDoctrine()->getManager(); + + $output=array(); + $userid=$request->request->get('user'); + $groupid=$request->request->get('group'); + + $data = $em->getRepository("CadolesCoreBundle:Usergroup")->findOneBy(array("user"=>$userid,"group"=>$groupid)); + if($data) $data->setFgmanager(!$data->getFgmanager()); + + $em->persist($data); + $em->flush(); + + $response = new Response(json_encode($output)); + $response->headers->set('Content-Type', 'application/json'); + return $response; + } + + public function submitAction(Request $request, $access="config") + { + $em = $this->getDoctrine()->getManager(); + // Initialisation de l'enregistrement $data = new Group(); $data->setFgopen(false); - $data->setFgcanshare(true); - $data->setFgcancreatepage(true); - $data->setFgcancreatecalendar(true); - $data->setFgcancreateblog(true); + $data->setFgcanshare(false); + $data->setFgcancreatepage(false); + $data->setFgcancreatecalendar(false); + $data->setFgcancreateblog(false); // Création du formulaire $form = $this->createForm(GroupType::class,$data,array( @@ -482,38 +522,54 @@ class GroupController extends Controller if($data->getLdapfilter()!="") $data->setFgopen(false); if($data->getAttributes()!="") $data->setFgopen(false); - $em = $this->getDoctrine()->getManager(); + // Icon + $idicon = $form->get('idicon')->getData(); + $icon=$em->getRepository("CadolesPortalBundle:Icon")->findoneby(["id"=>$idicon]); + $data->setIcon($icon); // Sauvegarde $em->persist($data); $em->flush(); + // On s'assure que le groupe de travail à bien page d'accueil / calendrier / blog associé + // Sinon on les génère + $this->ctrlFgcanshare($data); + // Retour à la liste return $this->redirectToRoute("cadoles_core_config_group_users",["id"=>$data->getId()]); } // Affichage du formulaire + $icons=$this->getDoctrine()->getRepository("CadolesPortalBundle:Icon")->findBy(["user"=>null]); + $iconsuser=null; + if($access=="user") $iconsuser=$this->getDoctrine()->getRepository("CadolesPortalBundle:Icon")->findBy(["user"=>$this->getUser()]); + return $this->render($this->labelentity.':edit.html.twig', [ 'useheader' => true, 'usemenu' => false, 'usesidebar' => true, $this->labeldata => $data, 'mode' => 'submit', + 'access' => 'access', + 'icons' => $icons, + 'iconsuser' => $iconsuser, 'form' => $form->createView() ]); } - public function updateAction($id,Request $request) + public function updateAction($id,Request $request,$access="config") { // Récupération de l'enregistrement courant + $em = $this->getDoctrine()->getManager(); $data=$this->getData($id); // Création du formulaire $form = $this->createForm(GroupType::class,$data,array( - "mode"=>"update", - "updatelimite"=>($data->getFgAll()||$data->getFgTemplate()), - "masteridentity"=> $this->GetParameter("masteridentity"), - "portal_activate"=>$this->getParameter("portal_activate") + "mode" => "update", + "updatelimite" => ($data->getFgAll()||$data->getFgTemplate()), + "masteridentity" => $this->GetParameter("masteridentity"), + "portal_activate" => $this->getParameter("portal_activate"), + "idicon" => ($data->getIcon()?$data->getIcon()->getId():null), ) ); @@ -525,26 +581,35 @@ class GroupController extends Controller // Sur validation if ($form->get('submit')->isClicked() && $form->isValid()) { - $masteridentity=$this->GetParameter("masteridentity"); - $em = $this->getDoctrine()->getManager(); - - $data = $form->getData(); + $masteridentity=$this->GetParameter("masteridentity"); if($masteridentity!="LDAP") $data->setLdapfilter(null); if($masteridentity!="SSO") $data->setAttributes(null); if($data->getLdapfilter()!="") $data->setFgopen(false); if($data->getAttributes()!="") $data->setFgopen(false); + // Icon + $idicon = $form->get('idicon')->getData(); + $icon=$this->getDoctrine()->getRepository("CadolesPortalBundle:Icon")->findoneby(["id"=>$idicon]); + $data->setIcon($icon); + // Sauvegarde $em->persist($data); $em->flush(); + // On s'assure que le groupe de travail à bien page d'accueil / calendrier / blog associé + // Sinon on les génère + $this->ctrlFgcanshare($data); + // Retour à la liste return $this->redirectToRoute($this->labelroute); } - + $icons=$em->getRepository("CadolesPortalBundle:Icon")->findBy(["user"=>null]); + $iconsuser=null; + if($access=="user") $iconsuser=$em()->getRepository("CadolesPortalBundle:Icon")->findBy(["user"=>$this->getUser()]); + // Affichage du formulaire return $this->render($this->labelentity.':edit.html.twig', [ 'useheader' => true, @@ -552,6 +617,9 @@ class GroupController extends Controller 'usesidebar' => true, $this->labeldata => $data, 'mode' => 'update', + 'access' => $access, + 'icons' => $icons, + 'iconsuser' => $iconsuser, 'form' => $form->createView() ]); } @@ -618,6 +686,49 @@ class GroupController extends Controller ]); } + protected function ctrlFgcanshare($group) { + $em = $this->getDoctrine()->getManager(); + + if($group->getFgcanshare()) { + // On regarde s'il a au moins une page + if($group->getPages()->isEmpty()) { + $page=$this->getDoctrine()->getRepository("CadolesPortalBundle:Page")->clonePage(null,$group->getPagetemplate()); + $group->addPage($page); + $page->setName("Groupe = ".$group->getLabel()); + + $em->persist($page); + $em->persist($group); + $em->flush(); + } + + // On regarde s'il a au moins un calendrier + if($group->getCalendars()->isEmpty()) { + $calendar=new Calendar(); + $key = Uuid::uuid4(); + + $calendar->setName("Groupe = ".$group->getLabel()); + $calendar->setKeyvalue($key); + $calendar->addGroup($group); + $calendar->setColor($group->getColor()); + $calendar->setType(0); + + $em->persist($calendar); + $em->flush(); + } + + // On regarde s'il a au moins un blog + if($group->getBlogs()->isEmpty()) { + $blog=new Blog(); + + $blog->setName("Groupe = ".$group->getLabel()); + $blog->addGroup($group); + + $em->persist($blog); + $em->flush(); + } + } + } + protected function getDatas() { $em = $this->getDoctrine()->getManager(); @@ -661,6 +772,9 @@ class GroupController extends Controller $tmp=$this->getEntityBy("CadolesCoreBundle:Niveau02","label",$data->getLabel()); if($tmp) $form->addError(new FormError('Un niveau de rang 02 utilise déjà ce label')); + + if($data->getFgcanshare()&&is_null($data->getPagetemplate())) + $form->addError(new FormError("Un groupe de travail doit avoir un modèle de page d'accueil")); } if ($form->get('submit')->isClicked() && !$form->isValid()) { diff --git a/src/ninegate-1.0/src/Cadoles/CoreBundle/Controller/UserController.php b/src/ninegate-1.0/src/Cadoles/CoreBundle/Controller/UserController.php index 52da39e9..3d9f5d7a 100644 --- a/src/ninegate-1.0/src/Cadoles/CoreBundle/Controller/UserController.php +++ b/src/ninegate-1.0/src/Cadoles/CoreBundle/Controller/UserController.php @@ -314,7 +314,7 @@ class UserController extends Controller $group->setUser($data); $datagroup = $em->getRepository("CadolesCoreBundle:Group")->find($idgroup); - $user->setGroup($datagroup); + $group->setGroup($datagroup); $em->persist($group); $em->flush(); diff --git a/src/ninegate-1.0/src/Cadoles/CoreBundle/Entity/Group.php b/src/ninegate-1.0/src/Cadoles/CoreBundle/Entity/Group.php index f7b6103c..fb91f04b 100644 --- a/src/ninegate-1.0/src/Cadoles/CoreBundle/Entity/Group.php +++ b/src/ninegate-1.0/src/Cadoles/CoreBundle/Entity/Group.php @@ -29,6 +29,20 @@ class Group */ private $label; + /** + * @var string + * + * @ORM\Column(name="description", type="text", nullable=true) + */ + private $description; + + /** + * @var string + * + * @ORM\Column(name="color", type="string", length=24, nullable=true) + */ + private $color; + /** * @ORM\Column(type="boolean", options={"default" : false}) */ @@ -74,6 +88,23 @@ class Group */ private $attributes; + /** + * @ORM\ManyToOne(targetEntity="Cadoles\PortalBundle\Entity\Icon", inversedBy="groups") + * @ORM\JoinColumn(nullable=true, onDelete="SET NULL") + */ + private $icon; + + /** + * @ORM\ManyToOne(targetEntity="User", inversedBy="ownergroups") + * @ORM\JoinColumn(nullable=true, onDelete="SET NULL") + */ + private $owner; + + /** + * @ORM\ManyToOne(targetEntity="Cadoles\PortalBundle\Entity\Page", inversedBy="templategroups") + */ + private $pagetemplate; + /** * @var ArrayCollection $users * @var UserGroup @@ -97,7 +128,6 @@ class Group */ protected $pages; - /** * @ORM\ManyToMany(targetEntity="Cadoles\PortalBundle\Entity\Flux", mappedBy="groups") */ @@ -671,4 +701,124 @@ class Group { return $this->blogs; } + + /** + * Set description + * + * @param string $description + * + * @return Group + */ + public function setDescription($description) + { + $this->description = $description; + + return $this; + } + + /** + * Get description + * + * @return string + */ + public function getDescription() + { + return $this->description; + } + + /** + * Set icon + * + * @param \Cadoles\PortalBundle\Entity\Icon $icon + * + * @return Group + */ + public function setIcon(\Cadoles\PortalBundle\Entity\Icon $icon = null) + { + $this->icon = $icon; + + return $this; + } + + /** + * Get icon + * + * @return \Cadoles\PortalBundle\Entity\Icon + */ + public function getIcon() + { + return $this->icon; + } + + /** + * Set owner + * + * @param \Cadoles\CoreBundle\Entity\User $owner + * + * @return Group + */ + public function setOwner(\Cadoles\CoreBundle\Entity\User $owner = null) + { + $this->owner = $owner; + + return $this; + } + + /** + * Get owner + * + * @return \Cadoles\CoreBundle\Entity\User + */ + public function getOwner() + { + return $this->owner; + } + + /** + * Set color + * + * @param string $color + * + * @return Group + */ + public function setColor($color) + { + $this->color = $color; + + return $this; + } + + /** + * Get color + * + * @return string + */ + public function getColor() + { + return $this->color; + } + + /** + * Set pagetemplate + * + * @param \Cadoles\PortalBundle\Entity\Page $pagetemplate + * + * @return Group + */ + public function setPagetemplate(\Cadoles\PortalBundle\Entity\Page $pagetemplate = null) + { + $this->pagetemplate = $pagetemplate; + + return $this; + } + + /** + * Get pagetemplate + * + * @return \Cadoles\PortalBundle\Entity\Page + */ + public function getPagetemplate() + { + return $this->pagetemplate; + } } diff --git a/src/ninegate-1.0/src/Cadoles/CoreBundle/Entity/Niveau01.php b/src/ninegate-1.0/src/Cadoles/CoreBundle/Entity/Niveau01.php index 3cbe96a8..232ab7b7 100644 --- a/src/ninegate-1.0/src/Cadoles/CoreBundle/Entity/Niveau01.php +++ b/src/ninegate-1.0/src/Cadoles/CoreBundle/Entity/Niveau01.php @@ -87,7 +87,7 @@ class Niveau01 private $modos; /** - * @ORM\ManyToMany(targetEntity="Cadoles\PortalBundle\Entity\Item", mappedBy="groups") + * @ORM\ManyToMany(targetEntity="Cadoles\PortalBundle\Entity\Item", mappedBy="niveau01s") */ protected $items; diff --git a/src/ninegate-1.0/src/Cadoles/CoreBundle/Entity/Registration.php b/src/ninegate-1.0/src/Cadoles/CoreBundle/Entity/Registration.php index 4f04d636..71dae38c 100644 --- a/src/ninegate-1.0/src/Cadoles/CoreBundle/Entity/Registration.php +++ b/src/ninegate-1.0/src/Cadoles/CoreBundle/Entity/Registration.php @@ -78,7 +78,7 @@ class Registration implements UserInterface, \Serializable private $keyvalue; /** - * @ORM\ManyToOne(targetEntity="Statut") + * @ORM\ManyToOne(targetEntity="Statut", inversedBy="registrations") * @ORM\JoinColumn(nullable=false) */ private $statut; diff --git a/src/ninegate-1.0/src/Cadoles/CoreBundle/Entity/User.php b/src/ninegate-1.0/src/Cadoles/CoreBundle/Entity/User.php index 771d2bc6..11a2f953 100644 --- a/src/ninegate-1.0/src/Cadoles/CoreBundle/Entity/User.php +++ b/src/ninegate-1.0/src/Cadoles/CoreBundle/Entity/User.php @@ -179,6 +179,14 @@ class User implements UserInterface, \Serializable */ private $groups; + /** + * @var ArrayCollection $ownergroups + * @var Group + * + * @ORM\OneToMany(targetEntity="Group", mappedBy="owner", cascade={"persist"}, orphanRemoval=false) + */ + private $ownergroups; + /** * @var ArrayCollection $groups * @var UserGroup @@ -1297,4 +1305,38 @@ class User implements UserInterface, \Serializable { return $this->icons; } + + /** + * Add ownergroup + * + * @param \Cadoles\CoreBundle\Entity\Group $ownergroup + * + * @return User + */ + public function addOwnergroup(\Cadoles\CoreBundle\Entity\Group $ownergroup) + { + $this->ownergroups[] = $ownergroup; + + return $this; + } + + /** + * Remove ownergroup + * + * @param \Cadoles\CoreBundle\Entity\Group $ownergroup + */ + public function removeOwnergroup(\Cadoles\CoreBundle\Entity\Group $ownergroup) + { + $this->ownergroups->removeElement($ownergroup); + } + + /** + * Get ownergroups + * + * @return \Doctrine\Common\Collections\Collection + */ + public function getOwnergroups() + { + return $this->ownergroups; + } } diff --git a/src/ninegate-1.0/src/Cadoles/CoreBundle/Entity/UserGroup.php b/src/ninegate-1.0/src/Cadoles/CoreBundle/Entity/UserGroup.php index 05b17238..f9b0ff1e 100644 --- a/src/ninegate-1.0/src/Cadoles/CoreBundle/Entity/UserGroup.php +++ b/src/ninegate-1.0/src/Cadoles/CoreBundle/Entity/UserGroup.php @@ -35,6 +35,10 @@ class UserGroup */ private $group; + /** + * @ORM\Column(type="boolean", options={"default" : false}) + */ + private $fgmanager = false; /** @@ -94,4 +98,28 @@ class UserGroup { return $this->group; } + + /** + * Set fgmanager + * + * @param boolean $fgmanager + * + * @return UserGroup + */ + public function setFgmanager($fgmanager) + { + $this->fgmanager = $fgmanager; + + return $this; + } + + /** + * Get fgmanager + * + * @return boolean + */ + public function getFgmanager() + { + return $this->fgmanager; + } } diff --git a/src/ninegate-1.0/src/Cadoles/CoreBundle/Form/GroupType.php b/src/ninegate-1.0/src/Cadoles/CoreBundle/Form/GroupType.php index 22020754..0eb79a37 100644 --- a/src/ninegate-1.0/src/Cadoles/CoreBundle/Form/GroupType.php +++ b/src/ninegate-1.0/src/Cadoles/CoreBundle/Form/GroupType.php @@ -35,13 +35,26 @@ class GroupType extends AbstractType $choices=array("oui" => "1","non" => "0"); $builder->add("fgcanshare", ChoiceType::class,array( - "label" =>"Partage dans le groupe activé", + "label" =>"Groupe de Travail", 'disabled' => ($options["mode"]=="delete"?true:false), "attr" => array("class" => "form-control", "style" => "margin-bottom:15px"), "choices" => $choices ) ); + $builder->add('pagetemplate', + EntityType::class,[ + "class" => "CadolesPortalBundle:Page", + "label" => "Modèle de Page pour l'accueil du groupe", + "required" => false, + "choice_label" => "name", + "query_builder"=> function (EntityRepository $er) { + return $er->createQueryBuilder('page')->where('page.parentfor=:parentfor')->setParameter('parentfor', 'group'); + }, + "disabled" => ($options["mode"]=="delete"||$options["masteridentity"]!="SQL"?true:false), + "attr" => array("class" => "form-control", "style" => "margin-bottom:15px","readonly" => ($options["mode"]=="delete"?true:false)) + ]); + $builder->add("fgcancreatepage", ChoiceType::class,array( "label" =>"Permission de créer des Pages", @@ -190,6 +203,21 @@ class GroupType extends AbstractType ]); } + $builder->add('idicon', HiddenType::class,['mapped'=> false,'data' => $options["idicon"]]); + + $builder->add('color', TextType::class, [ + 'label' => "Couleur", + 'required' => false, + 'attr' => array("class" => "pick-a-color") + ]); + + $builder->add("description", TextareaType::class, [ + "label" => 'Description', + "required" => false, + "disabled" => ($options["mode"]=="delete"?true:false), + "attr" => array("rows" => '4') + ]); + if(!$options["updatelimite"]) { $builder->add('label', TextType::class, array( @@ -267,7 +295,8 @@ class GroupType extends AbstractType 'mode' => "string", 'masteridentity' => "string", 'portal_activate' => "boolean", - 'updatelimite' => "boolean" + 'updatelimite' => "boolean", + 'idicon' => "string", )); } } diff --git a/src/ninegate-1.0/src/Cadoles/CoreBundle/Resources/config/routing.yml b/src/ninegate-1.0/src/Cadoles/CoreBundle/Resources/config/routing.yml index 6512de53..7b8b7960 100644 --- a/src/ninegate-1.0/src/Cadoles/CoreBundle/Resources/config/routing.yml +++ b/src/ninegate-1.0/src/Cadoles/CoreBundle/Resources/config/routing.yml @@ -41,6 +41,7 @@ cadoles_core_ldap_login: path: /ldaplogin defaults: { _controller: CadolesCoreBundle:Security:login } + #== Crop Image =========================================================================================================== cadoles_core_crop01: path: /crop01 @@ -50,6 +51,7 @@ cadoles_core_crop02: path: /crop02 defaults: { _controller: CadolesCoreBundle:Crop:crop02 } + #== File ================================================================================================================= #-- Access config cadoles_core_config_file_upload: @@ -93,6 +95,7 @@ cadoles_core_user_file_show: path: file/show/{directory}/{filename} defaults: { _controller: CadolesCoreBundle:File:show, access: user } + #== Ajax ================================================================================================================= cadoles_core_ajax_country_list: path: /ajax/country/list @@ -128,6 +131,7 @@ cadoles_core_config: path: /config/home defaults: { _controller: CadolesCoreBundle:Config:home } + #== Commun Config Commun ================================================================================================= cadoles_core_config_commun: path: /config/commun @@ -165,6 +169,7 @@ cadoles_core_config_datausers: path: /config/commun/datausers defaults: { _controller: CadolesCoreBundle:Config:datausers } + #== Registration ========================================================================================================= #-- Access config cadoles_core_config_registration: @@ -282,6 +287,7 @@ cadoles_core_config_niveau01_logo: path: /config/niveau01/logo defaults: { _controller: CadolesCoreBundle:Niveau01:logo } + #== Niveau02 ============================================================================================================= cadoles_core_config_niveau02: path: /config/niveau02 @@ -303,6 +309,7 @@ cadoles_core_config_niveau02_ajax_list: path: /config/niveau02/ajax/list defaults: { _controller: CadolesCoreBundle:Niveau02:ajaxlist } + #== Group ================================================================================================================ cadoles_core_config_group: path: /config/group @@ -343,7 +350,12 @@ cadoles_core_config_group_ajax_usergroup_add: cadoles_core_config_group_ajax_usergroup_del: path: /config/group/ajax/usergroupdel defaults: { _controller: CadolesCoreBundle:Group:usergroupdel } + +cadoles_core_config_group_ajax_switchmanager: + path: /config/group/ajax/switchmanager + defaults: { _controller: CadolesCoreBundle:Group:switchmanager } + #== Whitelist ============================================================================================================ cadoles_core_config_whitelist: path: /config/whitelist diff --git a/src/ninegate-1.0/src/Cadoles/CoreBundle/Resources/views/Group/edit.html.twig b/src/ninegate-1.0/src/Cadoles/CoreBundle/Resources/views/Group/edit.html.twig index f0ace943..2b48434c 100755 --- a/src/ninegate-1.0/src/Cadoles/CoreBundle/Resources/views/Group/edit.html.twig +++ b/src/ninegate-1.0/src/Cadoles/CoreBundle/Resources/views/Group/edit.html.twig @@ -35,19 +35,16 @@ {% endif %}