first commit symfony 6

This commit is contained in:
2022-07-25 17:16:08 +02:00
parent 2bba3d5695
commit 8181ca1c39
53 changed files with 754 additions and 116 deletions

View File

@ -9,11 +9,26 @@ use Symfony\Component\Mercure\Update;
class PublishController extends AbstractController
{
public function sample($id){
return $this->render('Home/publishsample.html.twig',[
'id'=>$id
]);
}
public function publish($channel, $id, Request $request, HubInterface $hub): Response
{
$ret=$request->get("msg");
$ret["from"]=[];
$ret["from"]["id"]="tot";
$ret["from"]["id"]=$this->getUser()->getId();
$ret["from"]["username"]=$this->getUser()->getUsername();
$ret["from"]["displayname"]=$this->getUser()->getDisplayname();
if(stripos($this->getUser()->getAvatar(),"http")===0)
$ret["from"]["avatar"]=$this->getUser()->getAvatar();
else
$ret["from"]["avatar"]=$this->getParameter('appAlias')."uploads/avatar/".$this->getUser()->getAvatar();
$update = new Update(
$channel."-".$id,
json_encode(

View File

@ -36,6 +36,14 @@ class SecurityController extends AbstractController
$this->apiservice = $apiservice;
}
public function noperm(Request $request)
{
return $this->render('Home/noperm.html.twig',[
"useheader"=>true,
"usemenu"=>false,
]);
}
public function login(Request $request, AuthenticationUtils $authenticationUtils,ManagerRegistry $em)
{
switch($this->getParameter("appAuth")) {
@ -111,21 +119,24 @@ class SecurityController extends AbstractController
if(isset($attributes[$this->getParameter('casAvatar')]))
$avatar = $attributes[$this->getParameter('casAvatar')];
// Génération auto des niveau01s et des groupes en fonction des attributs sso
$this->submitSSONiveau01($attributes,$em);
$this->submitSSOGroup($attributes,$em);
// Rechercher l'utilisateur
$user = $em->getRepository('App\Entity\User')->findOneBy(array("username"=>$username));
if (!$user) {
if(!$this->getParameter("casAutosubmit")) return $this->redirect($this->generateUrl('app_noperm'));
$this->submitSSONiveau01($attributes,$em);
$this->submitSSOGroup($attributes,$em);
$niveau01=$em->getRepository('App\Entity\Niveau01')->calculateSSONiveau01($attributes);
$user=$this->submituser($username,$firstname,$lastname,$email,$password,$niveau01,$em);
$user=$em->getRepository('App\Entity\Group')->calculateSSOGroup($user,$attributes);
}
else
elseif($this->getParameter("casAutoupdate")) {
$this->submitSSONiveau01($attributes,$em);
$this->submitSSOGroup($attributes,$em);
$this->updateuser($user,$firstname,$lastname,$email,$avatar,$em);
// On calcule les groupes de l'utilisateur
$user=$em->getRepository('App\Entity\Group')->calculateSSOGroup($user,$attributes);
$user=$em->getRepository('App\Entity\Group')->calculateSSOGroup($user,$attributes);
}
// Autoconnexion
@ -154,7 +165,6 @@ class SecurityController extends AbstractController
$username=$request->get('login')["username"];
$password=$request->get('login')["password"];
$appMasteridentity=$this->getParameter("appMasteridentity");
// Récupération de la cible de navigation
$redirect = $request->getSession()->get("_security.main.target_path");
@ -186,10 +196,11 @@ class SecurityController extends AbstractController
$user = $em->getRepository('App\Entity\User')->findOneBy(array("username"=>$username));
if (!$user) {
if(!$this->getParameter("ldapAutosubmit")) return $this->redirect($this->generateUrl('app_noperm'));
$niveau01=$em->getRepository('App\Entity\Niveau01')->calculateLDAPNiveau01($username);
$user=$this->submituser($username,$firstname,$lastname,$email,$avatar,$niveau01,$em);
}
else {
elseif($this->getParameter("ldapAutoupdate")) {
$this->updateuser($user,$firstname,$lastname,$email,$avatar,$em);
}
@ -267,21 +278,22 @@ class SecurityController extends AbstractController
if(isset($attributes[$this->getParameter('oauthAvatar')]))
$avatar = $attributes[$this->getParameter('oauthAvatar')];
// Génération auto des niveau01s et des groupes en fonction des attributs sso
$this->submitSSONiveau01($attributes,$em);
$this->submitSSOGroup($attributes,$em);
// Rechercher l'utilisateur
$user = $em->getRepository('App\Entity\User')->findOneBy(array("username"=>$username));
if (!$user) {
if(!$this->getParameter("oauthAutosubmit")) return $this->redirect($this->generateUrl('app_noperm'));
$this->submitSSONiveau01($attributes,$em);
$this->submitSSOGroup($attributes,$em);
$niveau01=$em->getRepository('App\Entity\Niveau01')->calculateSSONiveau01($attributes);
$user=$this->submituser($username,$firstname,$lastname,$email,$avatar,$niveau01,$em);
}
else
elseif($this->getParameter("oauthAutoupdate")) {
$this->submitSSONiveau01($attributes,$em);
$this->submitSSOGroup($attributes,$em);
$this->updateuser($user,$firstname,$lastname,$email,$avatar,$em);
// On calcule les groupes de l'utilisateur
$user=$em->getRepository('App\Entity\Group')->calculateSSOGroup($user,$attributes);
$user=$em->getRepository('App\Entity\Group')->calculateSSOGroup($user,$attributes);
}
// Autoconnexion
return $this->autoconnexion($user,$redirect,$request);

View File

@ -0,0 +1,55 @@
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Finder\Finder;
use Symfony\Component\Yaml\Yaml;
use Doctrine\Persistence\ManagerRegistry;
class ThemeController extends AbstractController
{
public function list(Request $request)
{
$finder = new Finder();
$dir = $this->getParameter('kernel.project_dir')."/public/themes";
$url=$this->getParameter('appAlias')."themes";
$finder->in($dir)->directories()->depth('== 0');
$themes=[];
$themes[""]["dir"]="";
$themes[""]["url"]=$url;
$themes[""]["name"]="Thème par défaut";
foreach ($finder as $file) {
$key=$file->getRelativePathname();
$themes[$key]["dir"]=$key;
$themes[$key]["url"]=$url."/".$key;
$yml=Yaml::parseFile($dir.'/'.$key.'/info.yml');
$themes[$key]["name"]=$yml["name"];
}
$current=$request->getSession()->get("apptheme");
$currentheme=$themes[$current];
unset($themes[$current]);
return $this->render('Theme/list.html.twig',[
'useheader' => true,
'usesidebar' => true,
'currentheme' => $currentheme,
'themes' => $themes
]);
}
public function select($name,Request $request,ManagerRegistry $em)
{
$config=$em->getRepository("App\Entity\Config")->findoneBy(["id"=>"apptheme"]);
$config->setValue($name);
$em->getManager()->flush();
return $this->redirectToRoute("app_admin_theme");
}
}