This commit is contained in:
root 2019-06-13 09:09:21 +02:00
parent ada20f01f6
commit e161d9e575
15 changed files with 453 additions and 14 deletions

View File

@ -489,7 +489,7 @@ class GroupController extends Controller
$em->flush();
// Retour à la liste
return $this->redirectToRoute($this->labelroute);
return $this->redirectToRoute("cadoles_core_config_group_users",["id"=>$data->getId()]);
}
// Affichage du formulaire
@ -507,7 +507,6 @@ class GroupController extends Controller
{
// Récupération de l'enregistrement courant
$data=$this->getData($id);
// Création du formulaire
$form = $this->createForm(GroupType::class,$data,array(
@ -528,13 +527,15 @@ class GroupController extends Controller
if ($form->get('submit')->isClicked() && $form->isValid()) {
$masteridentity=$this->GetParameter("masteridentity");
$em = $this->getDoctrine()->getManager();
$data = $form->getData();
if($masteridentity!="LDAP") $data->setLdapfilter(null);
if($masteridentity!="SSO") $data->setAttributes(null);
if($data->getLdapfilter()!="") $data->setFgopen(false);
if($data->getAttributes()!="") $data->setFgopen(false);
// Sauvegarde
$em->persist($data);
$em->flush();

View File

@ -118,7 +118,8 @@ class Group
*/
protected $blogs;
// ATTENTION NE SURTOUT PAS REGEN TOTALEMENT LES SETTER
// Methode custom sur les Addxxx et Removexxx
/**
* Constructor
@ -428,6 +429,7 @@ class Group
*/
public function addItem(\Cadoles\PortalBundle\Entity\Item $item)
{
$item->addGroup($this);
$this->items[] = $item;
return $this;
@ -440,6 +442,7 @@ class Group
*/
public function removeItem(\Cadoles\PortalBundle\Entity\Item $item)
{
$item->removeGroup($this);
$this->items->removeElement($item);
}
@ -462,6 +465,7 @@ class Group
*/
public function addAlert(\Cadoles\PortalBundle\Entity\Alert $alert)
{
$alert->addGroup($this);
$this->alerts[] = $alert;
return $this;
@ -474,6 +478,7 @@ class Group
*/
public function removeAlert(\Cadoles\PortalBundle\Entity\Alert $alert)
{
$alert->removeGroup($this);
$this->alerts->removeElement($alert);
}
@ -496,6 +501,7 @@ class Group
*/
public function addPage(\Cadoles\PortalBundle\Entity\Page $page)
{
$page->addGroup($this);
$this->pages[] = $page;
return $this;
@ -508,6 +514,7 @@ class Group
*/
public function removePage(\Cadoles\PortalBundle\Entity\Page $page)
{
$page->removeGroup($this);
$this->pages->removeElement($page);
}
@ -530,6 +537,7 @@ class Group
*/
public function addFlux(\Cadoles\PortalBundle\Entity\Flux $flux)
{
$flux->addGroup($this);
$this->fluxs[] = $flux;
return $this;
@ -542,6 +550,7 @@ class Group
*/
public function removeFlux(\Cadoles\PortalBundle\Entity\Flux $flux)
{
$flux->removeGroup($this);
$this->fluxs->removeElement($flux);
}
@ -564,6 +573,7 @@ class Group
*/
public function addNotice(\Cadoles\PortalBundle\Entity\Notice $notice)
{
$notice->addGroup($this);
$this->notices[] = $notice;
return $this;
@ -576,6 +586,7 @@ class Group
*/
public function removeNotice(\Cadoles\PortalBundle\Entity\Notice $notice)
{
$notice->removeGroup($this);
$this->notices->removeElement($notice);
}
@ -598,6 +609,7 @@ class Group
*/
public function addCalendar(\Cadoles\PortalBundle\Entity\Calendar $calendar)
{
$calendar->addGroup($this);
$this->calendars[] = $calendar;
return $this;
@ -610,6 +622,7 @@ class Group
*/
public function removeCalendar(\Cadoles\PortalBundle\Entity\Calendar $calendar)
{
$calendar->removeGroup($this);
$this->calendars->removeElement($calendar);
}
@ -632,6 +645,7 @@ class Group
*/
public function addBlog(\Cadoles\PortalBundle\Entity\Blog $blog)
{
$blog->addGroup($this);
$this->blogs[] = $blog;
return $this;
@ -644,6 +658,7 @@ class Group
*/
public function removeBlog(\Cadoles\PortalBundle\Entity\Blog $blog)
{
$blog->removeGroup($this);
$this->blogs->removeElement($blog);
}

View File

@ -13,6 +13,7 @@ use Symfony\Component\Form\Extension\Core\Type\HiddenType;
use Symfony\Component\Form\Extension\Core\Type\ButtonType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Tetranz\Select2EntityBundle\Form\Type\Select2EntityType;
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
@ -66,7 +67,127 @@ class GroupType extends AbstractType
"attr" => array("class" => "form-control", "style" => "margin-bottom:15px"),
"choices" => $choices
)
);
);
$builder->add('pages', Select2EntityType::class, [
'label' => 'Afficher les Pages',
'class' => 'CadolesPortalBundle:Page',
'multiple' => true,
'remote_route' => 'cadoles_portal_config_ajax_page_seleclist',
'primary_key' => 'id',
'text_property' => 'name',
'minimum_input_length' => 0,
'page_limit' => 100,
'allow_clear' => true,
'delay' => 250,
'cache' => false,
'cache_timeout' => 60000,
'language' => 'fr',
'placeholder' => 'Selectionner des pages',
]);
$builder->add('items', Select2EntityType::class, [
'label' => 'Afficher les Items',
'class' => 'CadolesPortalBundle:Item',
'multiple' => true,
'remote_route' => 'cadoles_portal_config_ajax_item_seleclist',
'primary_key' => 'id',
'text_property' => 'title',
'minimum_input_length' => 0,
'page_limit' => 100,
'allow_clear' => true,
'delay' => 250,
'cache' => false,
'cache_timeout' => 60000,
'language' => 'fr',
'placeholder' => 'Selectionner des items',
]);
$builder->add('alerts', Select2EntityType::class, [
'label' => 'Afficher les Annonces',
'class' => 'CadolesPortalBundle:Alert',
'multiple' => true,
'remote_route' => 'cadoles_portal_config_ajax_alert_seleclist',
'primary_key' => 'id',
'text_property' => 'title',
'minimum_input_length' => 0,
'page_limit' => 100,
'allow_clear' => true,
'delay' => 250,
'cache' => false,
'cache_timeout' => 60000,
'language' => 'fr',
'placeholder' => 'Selectionner des annonces',
]);
$builder->add('calendars', Select2EntityType::class, [
'label' => 'Afficher les Calendriers',
'class' => 'CadolesPortalBundle:Calendar',
'multiple' => true,
'remote_route' => 'cadoles_portal_config_ajax_calendar_seleclist',
'primary_key' => 'id',
'text_property' => 'name',
'minimum_input_length' => 0,
'page_limit' => 100,
'allow_clear' => true,
'delay' => 250,
'cache' => false,
'cache_timeout' => 60000,
'language' => 'fr',
'placeholder' => 'Selectionner des calendriers',
]);
$builder->add('blogs', Select2EntityType::class, [
'label' => 'Afficher les Blogs',
'class' => 'CadolesPortalBundle:Blog',
'multiple' => true,
'remote_route' => 'cadoles_portal_config_ajax_blog_seleclist',
'primary_key' => 'id',
'text_property' => 'name',
'minimum_input_length' => 0,
'page_limit' => 100,
'allow_clear' => true,
'delay' => 250,
'cache' => false,
'cache_timeout' => 60000,
'language' => 'fr',
'placeholder' => 'Selectionner des blogs',
]);
$builder->add('fluxs', Select2EntityType::class, [
'label' => 'Afficher les Flux',
'class' => 'CadolesPortalBundle:Flux',
'multiple' => true,
'remote_route' => 'cadoles_portal_config_ajax_flux_seleclist',
'primary_key' => 'id',
'text_property' => 'title',
'minimum_input_length' => 0,
'page_limit' => 100,
'allow_clear' => true,
'delay' => 250,
'cache' => false,
'cache_timeout' => 60000,
'language' => 'fr',
'placeholder' => 'Selectionner des flux',
]);
$builder->add('notices', Select2EntityType::class, [
'label' => 'Afficher les Chartes',
'class' => 'CadolesPortalBundle:Notice',
'multiple' => true,
'remote_route' => 'cadoles_portal_config_ajax_notice_seleclist',
'primary_key' => 'id',
'text_property' => 'title',
'minimum_input_length' => 0,
'page_limit' => 100,
'allow_clear' => true,
'delay' => 250,
'cache' => false,
'cache_timeout' => 60000,
'language' => 'fr',
'placeholder' => 'Selectionner des chartes',
]);
}
if(!$options["updatelimite"]) {

View File

@ -0,0 +1,58 @@
{% extends '@CadolesCore/base.html.twig' %}
{% block localstyle %}
.thumbnail img {
width:200px;
border: 5px solid #fff;
border-radius: 10px;
}
.caption {
margin-top: -15px;
}
.caption p {
text-align:justify;
font-size:14px;
word-wrap: break-word;
}
.caption ul {
margin-top:-10px;
padding-left: 20px;
}
.caption li {
text-align:left;
font-size:14px;
word-wrap: break-word;
font-style: italic;
}
{% endblock %}
{% block pagewrapper %}
<div style="width: 400px;margin: auto;text-align: center;margin-top: 50px;">
<img id="logo" src="/{{ alias }}/{{ app.session.get('logo') }}">
<h1>{{ app.session.get('appname') }}</h1>
<h2>Vous avez perdu votre connection</h2>
Vous allez être redirigé vers la page d'accueil
<br>
</div>
{% endblock %}
{% block localjavascript %}
$('document').ready(function(){
setTimeout(function(){
//parent.location.reload();
parent.location.href = "{{ path("cadoles_core_home") }}";
}, 2000);
});
{% endblock %}

View File

@ -66,6 +66,24 @@
{% endif %}
{% if form.fgcanshare is defined %}
<div class="col-sm-6">
<div class="panel panel-primary">
<div class="panel-heading">
<i class="fa fa-pencil fa-fw"></i> Elements du Portail
</div>
<div class="panel-body">
{{ form_row(form.pages) }}
{{ form_row(form.items) }}
{{ form_row(form.alerts) }}
{{ form_row(form.calendars) }}
{{ form_row(form.blogs) }}
{{ form_row(form.fluxs) }}
{{ form_row(form.notices) }}
</div>
</div>
</div>
<div class="col-sm-6">
<div class="panel panel-primary">
<div class="panel-heading">

View File

@ -19,6 +19,34 @@ class AlertController extends Controller
private $labeldata = 'alert';
private $labeldatas = 'alerts';
public function ajaxseleclistAction(Request $request)
{
// S'assurer que c'est un appel ajax
if (!$request->isXmlHttpRequest()) {
return new JsonResponse(array('message' => 'Interdit'), 400);
}
$output=array();
$em = $this->getDoctrine()->getManager();
$page_limit=$request->query->get('page_limit');
$q=$request->query->get('q');
$qb = $em->createQueryBuilder();
$qb->select('table')->from("CadolesPortalBundle:Alert",'table')
->where('table.title LIKE :value')
->setParameter("value", "%".$q."%")
->orderBy('table.title');
$datas=$qb->setFirstResult(0)->setMaxResults($page_limit)->getQuery()->getResult();
foreach($datas as $data) {
array_push($output,array("id"=>$data->getId(),"text"=>$data->getTitle()));
}
$response = new Response(json_encode($output));
$response->headers->set('Content-Type', 'application/json');
return $response;
}
public function listAction()
{
$alerts = $this->getDoctrine()->getRepository('CadolesPortalBundle:Alert')->findBy([], ['rowOrder' => 'asc']);

View File

@ -125,6 +125,34 @@ class BlogController extends Controller
return new Response(json_encode($output), 200);
}
public function ajaxseleclistAction(Request $request)
{
// S'assurer que c'est un appel ajax
if (!$request->isXmlHttpRequest()) {
return new JsonResponse(array('message' => 'Interdit'), 400);
}
$output=array();
$em = $this->getDoctrine()->getManager();
$page_limit=$request->query->get('page_limit');
$q=$request->query->get('q');
$qb = $em->createQueryBuilder();
$qb->select('table')->from("CadolesPortalBundle:Blog",'table')
->where('table.name LIKE :value')
->setParameter("value", "%".$q."%")
->orderBy('table.name');
$datas=$qb->setFirstResult(0)->setMaxResults($page_limit)->getQuery()->getResult();
foreach($datas as $data) {
array_push($output,array("id"=>$data->getId(),"text"=>$data->getName()));
}
$response = new Response(json_encode($output));
$response->headers->set('Content-Type', 'application/json');
return $response;
}
private function entityForm(Blog $entity,$access="config")
{
$route=str_replace("_config_","_".$access."_",$this->routeprimary);

View File

@ -122,6 +122,34 @@ class CalendarController extends Controller
return new Response(json_encode($output), 200);
}
public function ajaxseleclistAction(Request $request)
{
// S'assurer que c'est un appel ajax
if (!$request->isXmlHttpRequest()) {
return new JsonResponse(array('message' => 'Interdit'), 400);
}
$output=array();
$em = $this->getDoctrine()->getManager();
$page_limit=$request->query->get('page_limit');
$q=$request->query->get('q');
$qb = $em->createQueryBuilder();
$qb->select('table')->from("CadolesPortalBundle:Calendar",'table')
->where('table.name LIKE :value')
->setParameter("value", "%".$q."%")
->orderBy('table.name');
$datas=$qb->setFirstResult(0)->setMaxResults($page_limit)->getQuery()->getResult();
foreach($datas as $data) {
array_push($output,array("id"=>$data->getId(),"text"=>$data->getName()));
}
$response = new Response(json_encode($output));
$response->headers->set('Content-Type', 'application/json');
return $response;
}
private function entityForm(Calendar $entity,$access="config")
{
$route=str_replace("_config_","_".$access."_",$this->routeprimary);

View File

@ -33,6 +33,34 @@ class FluxController extends Controller
]);
}
public function ajaxseleclistAction(Request $request)
{
// S'assurer que c'est un appel ajax
if (!$request->isXmlHttpRequest()) {
return new JsonResponse(array('message' => 'Interdit'), 400);
}
$output=array();
$em = $this->getDoctrine()->getManager();
$page_limit=$request->query->get('page_limit');
$q=$request->query->get('q');
$qb = $em->createQueryBuilder();
$qb->select('table')->from("CadolesPortalBundle:Flux",'table')
->where('table.title LIKE :value')
->setParameter("value", "%".$q."%")
->orderBy('table.title');
$datas=$qb->setFirstResult(0)->setMaxResults($page_limit)->getQuery()->getResult();
foreach($datas as $data) {
array_push($output,array("id"=>$data->getId(),"text"=>$data->getTitle()));
}
$response = new Response(json_encode($output));
$response->headers->set('Content-Type', 'application/json');
return $response;
}
public function submitAction(Request $request)
{
// Initialisation de l'enregistrement

View File

@ -33,6 +33,34 @@ class ItemController extends Controller
]);
}
public function ajaxseleclistAction(Request $request)
{
// S'assurer que c'est un appel ajax
if (!$request->isXmlHttpRequest()) {
return new JsonResponse(array('message' => 'Interdit'), 400);
}
$output=array();
$em = $this->getDoctrine()->getManager();
$page_limit=$request->query->get('page_limit');
$q=$request->query->get('q');
$qb = $em->createQueryBuilder();
$qb->select('table')->from("CadolesPortalBundle:Item",'table')
->where('table.title LIKE :value')
->setParameter("value", "%".$q."%")
->orderBy('table.title');
$datas=$qb->setFirstResult(0)->setMaxResults($page_limit)->getQuery()->getResult();
foreach($datas as $data) {
array_push($output,array("id"=>$data->getId(),"text"=>$data->getTitle()));
}
$response = new Response(json_encode($output));
$response->headers->set('Content-Type', 'application/json');
return $response;
}
public function submitAction(Request $request)
{
// Initialisation de l'enregistrement

View File

@ -34,6 +34,34 @@ class NoticeController extends Controller
]);
}
public function ajaxseleclistAction(Request $request)
{
// S'assurer que c'est un appel ajax
if (!$request->isXmlHttpRequest()) {
return new JsonResponse(array('message' => 'Interdit'), 400);
}
$output=array();
$em = $this->getDoctrine()->getManager();
$page_limit=$request->query->get('page_limit');
$q=$request->query->get('q');
$qb = $em->createQueryBuilder();
$qb->select('table')->from("CadolesPortalBundle:Notice",'table')
->where('table.title LIKE :value')
->setParameter("value", "%".$q."%")
->orderBy('table.title');
$datas=$qb->setFirstResult(0)->setMaxResults($page_limit)->getQuery()->getResult();
foreach($datas as $data) {
array_push($output,array("id"=>$data->getId(),"text"=>$data->getTitle()));
}
$response = new Response(json_encode($output));
$response->headers->set('Content-Type', 'application/json');
return $response;
}
public function submitAction(Request $request)
{
// Initialisation de l'enregistrement

View File

@ -137,6 +137,34 @@ class PageController extends Controller
return new Response(json_encode($output), 200);
}
public function ajaxseleclistAction(Request $request)
{
// S'assurer que c'est un appel ajax
if (!$request->isXmlHttpRequest()) {
return new JsonResponse(array('message' => 'Interdit'), 400);
}
$output=array();
$em = $this->getDoctrine()->getManager();
$page_limit=$request->query->get('page_limit');
$q=$request->query->get('q');
$qb = $em->createQueryBuilder();
$qb->select('table')->from("CadolesPortalBundle:Page",'table')
->where('table.name LIKE :value')
->setParameter("value", "%".$q."%")
->orderBy('table.name');
$datas=$qb->setFirstResult(0)->setMaxResults($page_limit)->getQuery()->getResult();
foreach($datas as $data) {
array_push($output,array("id"=>$data->getId(),"text"=>$data->getName()));
}
$response = new Response(json_encode($output));
$response->headers->set('Content-Type', 'application/json');
return $response;
}
private function entityForm(Page $entity,$access="config")
{
$route=str_replace("_config_","_".$access."_",$this->routeprimary);
@ -400,7 +428,13 @@ class PageController extends Controller
else {
// On s'assure que l'utilisateur à la permission de voir
$em->getRepository($this->labelentity)->getPermission($this->getUser(),$entity,$cansee,$canupdate);
if(!$cansee) throw $this->createNotFoundException('Permission denied');
if(!$cansee) {
return $this->render('CadolesCoreBundle:Core:reconnect.html.twig', [
'useheader' => false,
'usemenu' => false,
'usesidebar' => false,
]);
}
}
// Type Calendrier

View File

@ -62,7 +62,9 @@ cadoles_portal_config_item_order:
path: /config/item/order
defaults: { _controller: CadolesPortalBundle:Item:order }
cadoles_portal_config_ajax_item_seleclist:
path: /config/item/ajax/selectlist
defaults: { _controller: CadolesPortalBundle:Item:ajaxseleclist }
#== ITEM CATEGORY ========================================================================================================================================
@ -106,6 +108,9 @@ cadoles_portal_config_alert_order:
path: /config/alert/order
defaults: { _controller: CadolesPortalBundle:Alert:order }
cadoles_portal_config_ajax_alert_seleclist:
path: /config/alert/ajax/selectlist
defaults: { _controller: CadolesPortalBundle:Alert:ajaxseleclist }
@ -146,7 +151,9 @@ cadoles_portal_config_flux_order:
path: /config/flux/order
defaults: { _controller: CadolesPortalBundle:Flux:order }
cadoles_portal_config_ajax_flux_seleclist:
path: /config/flux/ajax/selectlist
defaults: { _controller: CadolesPortalBundle:Flux:ajaxseleclist }
#== NOTICE ===============================================================================================================================================
@ -186,7 +193,9 @@ cadoles_portal_user_notice_view:
path: /notice/view
defaults: { _controller: CadolesPortalBundle:Notice:view }
cadoles_portal_config_ajax_notice_seleclist:
path: /config/notice/ajax/selectlist
defaults: { _controller: CadolesPortalBundle:Notice:ajaxseleclist }
#== PAGE =================================================================================================================================================
@ -200,6 +209,10 @@ cadoles_portal_config_page_ajax_list:
path: /config/page/ajax/list
defaults: { _controller: CadolesPortalBundle:Page:ajaxlist, access: config }
cadoles_portal_config_ajax_page_seleclist:
path: /config/page/ajax/selectlist
defaults: { _controller: CadolesPortalBundle:Page:ajaxseleclist, access: config }
cadoles_portal_config_page_submit:
path: /config/page/submit
defaults: { _controller: CadolesPortalBundle:Page:submit, access: config }
@ -372,6 +385,9 @@ cadoles_portal_config_blog_writer:
path: /config/blog/writer/{id}
defaults: { _controller: CadolesPortalBundle:Blog:writer, access: config }
cadoles_portal_config_ajax_blog_seleclist:
path: /config/blog/ajax/selectlist
defaults: { _controller: CadolesPortalBundle:Blog:ajaxseleclist }
#-- Access user
cadoles_portal_user_blog_view:
@ -484,6 +500,9 @@ cadoles_portal_config_calendar_view:
path: /config/calendar/view
defaults: { _controller: CadolesPortalBundle:Calendar:view, access: config }
cadoles_portal_config_ajax_calendar_seleclist:
path: /config/calendar/ajax/selectlist
defaults: { _controller: CadolesPortalBundle:Calendar:ajaxseleclist }
#-- Access user
cadoles_portal_user_calendar_view:

View File

@ -17,8 +17,13 @@ class DefaultController extends BaseController
public function discoveryAction()
{
$masteridentity=$this->getParameter("masteridentity");
if($masteridentity!="SAML")
return;
if($masteridentity!="SAML") {
return $this->render('CadolesCoreBundle:Core:reconnect.html.twig', [
'useheader' => true,
'usemenu' => false,
'usesidebar' => false,
]);
}
$request = $this->container->get('request_stack')->getCurrentRequest();

View File

@ -20,8 +20,8 @@
> Séparateur milier sur datatable
> Cron faire un système de lock
> Limesurvey s'assurer des quotes doubles quotes dans le titre
> Donner des permissions d'écritures sur les calendriers comme sur le blog
> Couleur sur blog
> Retour Home page sur permission de deniers