diff --git a/src/ninegate-1.0/.gitignore b/src/ninegate-1.0/.gitignore index 77814bb3..de346708 100644 --- a/src/ninegate-1.0/.gitignore +++ b/src/ninegate-1.0/.gitignore @@ -2,6 +2,7 @@ /app/config/parameters.yml /app/config/template.yml /src/Cadoles/CoreBundle/Command/data/core-init-01.sql +/src/Cadoles/CoreBundle/Command/LocalCommand.php /build/ /phpunit.xml /var/* diff --git a/src/ninegate-1.0/scripts/LocalCommand.php b/src/ninegate-1.0/scripts/LocalCommand.php new file mode 100644 index 00000000..aff7ca55 --- /dev/null +++ b/src/ninegate-1.0/scripts/LocalCommand.php @@ -0,0 +1,46 @@ +setName('Core:Local') + ->setDescription('Lauch Local Script') + ; + } + + protected function execute(InputInterface $input, OutputInterface $output) + { + $this->container = $this->getApplication()->getKernel()->getContainer(); + $this->em = $this->container->get('doctrine')->getEntityManager(); + $this->output = $output; + $this->filesystem = new Filesystem(); + $this->rootlog = $this->container->get('kernel')->getRootDir()."/../var/logs/"; + + return 1; + } + + + private function writelnred($string) { + $this->output->writeln(''.$string.''); + $this->filesystem->appendToFile($this->rootlog.'cron.log', $string."\n"); + } + private function writeln($string) { + $this->output->writeln($string); + $this->filesystem->appendToFile($this->rootlog.'cron.log', $string."\n"); + } +} diff --git a/src/ninegate-1.0/scripts/ninegate-postservice-01.sh b/src/ninegate-1.0/scripts/ninegate-postservice-01.sh index 3eccd8df..af996e91 100755 --- a/src/ninegate-1.0/scripts/ninegate-postservice-01.sh +++ b/src/ninegate-1.0/scripts/ninegate-postservice-01.sh @@ -49,6 +49,11 @@ rm -f /var/www/html/ninegate/var/logs/dev.log # Copie des polices du projet dans le rep web cp -rf src/Cadoles/CoreBundle/Resources/public/fonts web/ +# Copie de la commande local de base si elle la commande n'existe pas +if [ ! -f src/Cadoles/CoreBundle/Command/LocalCommand.php ]; then + cp -rf scripts/LocalCommand.php src/Cadoles/CoreBundle/Command/LocalCommand.php +fi + # Nettoyage du cache echo echo CACHE = Refresh @@ -66,6 +71,9 @@ php bin/console Portal:InitData --env=prod # Passage des scripts php bin/console Core:Script --env=prod +# Passage des scripts locaux +php bin/console Core:Local --env=prod + # Generation des assets echo ASSET = Dump bin/console assetic:dump --env=prod --quiet diff --git a/src/ninegate-1.0/src/Cadoles/CoreBundle/Command/InitDataCommand.php b/src/ninegate-1.0/src/Cadoles/CoreBundle/Command/InitDataCommand.php index 77f28f1d..40d845e9 100644 --- a/src/ninegate-1.0/src/Cadoles/CoreBundle/Command/InitDataCommand.php +++ b/src/ninegate-1.0/src/Cadoles/CoreBundle/Command/InitDataCommand.php @@ -138,6 +138,7 @@ class InitDataCommand extends ContainerAwareCommand $usergroup->setUser($user); $usergroup->setGroup($group); $usergroup->setKeyvalue($key); + $usergroup->setRolegroup(0); $em->persist($usergroup); $em->flush(); $em->clear(); diff --git a/src/ninegate-1.0/src/Cadoles/CoreBundle/Command/OnlyCommand.php b/src/ninegate-1.0/src/Cadoles/CoreBundle/Command/OnlyCommand.php index 4a8e2922..28643be6 100644 --- a/src/ninegate-1.0/src/Cadoles/CoreBundle/Command/OnlyCommand.php +++ b/src/ninegate-1.0/src/Cadoles/CoreBundle/Command/OnlyCommand.php @@ -287,7 +287,7 @@ class OnlyCommand extends Command $this->em->flush(); // On ajoute le propriétaire en tant que membre du groupe - $this->addMember($group,$user,true); + $this->addMember($group,$user,100); // On controle que le groupe a bien page / calendrier / blog / project $this->ctrlFgcanshare($group,$user,$pagetemplate); @@ -318,7 +318,7 @@ class OnlyCommand extends Command // On s'assure qu'il n'es pas déjà rattaché $usergroup=$this->em->getRepository("CadolesCoreBundle:UserGroup")->findOneBy(["user"=>$user,"group"=>$group]); if(!$usergroup) { - $this->addMember($group,$user,false); + $this->addMember($group,$user,0); } } } @@ -578,12 +578,12 @@ class OnlyCommand extends Command } - private function addMember($group,$user,$fgmanager) { + private function addMember($group,$user,$role) { $key = Uuid::uuid4(); - $usergroup=new Usergroup; + $usergroup=new UserGroup(); $usergroup->setUser($user); $usergroup->setGroup($group); - $usergroup->setFgmanager($fgmanager); + $usergroup->setRolegroup($role); $usergroup->setKeyvalue($key); $this->em->persist($usergroup); $this->em->flush(); diff --git a/src/ninegate-1.0/src/Cadoles/CoreBundle/Command/ScribeToNinegateCommand.php b/src/ninegate-1.0/src/Cadoles/CoreBundle/Command/ScribeToNinegateCommand.php index 33e2edc5..9458fef4 100644 --- a/src/ninegate-1.0/src/Cadoles/CoreBundle/Command/ScribeToNinegateCommand.php +++ b/src/ninegate-1.0/src/Cadoles/CoreBundle/Command/ScribeToNinegateCommand.php @@ -239,6 +239,7 @@ class ScribeToNinegateCommand extends Command $member= new UserGroup(); $member->setGroup($group); $member->setUser($user); + $member->setRolegroup(0); $this->em->persist($member); $this->em->flush(); diff --git a/src/ninegate-1.0/src/Cadoles/CoreBundle/Command/ScriptCommand.php b/src/ninegate-1.0/src/Cadoles/CoreBundle/Command/ScriptCommand.php index 0c16a076..5181d5b5 100644 --- a/src/ninegate-1.0/src/Cadoles/CoreBundle/Command/ScriptCommand.php +++ b/src/ninegate-1.0/src/Cadoles/CoreBundle/Command/ScriptCommand.php @@ -132,6 +132,18 @@ class ScriptCommand extends Command } + $script=$this->em->getRepository("CadolesCoreBundle:Script")->findOneBy(["name"=>"rolegroup"]); + if(!$script) { + $this->writelnred("== SCRIPT = rolegroup"); + $this->rolegroup(); + + $script=new Script(); + $script->setName("rolegroup"); + $this->em->persist($script); + $this->em->flush(); + $this->writeln(""); + } + return 1; } @@ -289,7 +301,23 @@ class ScriptCommand extends Command } } + private function rolegroup(){ + + $usergroups = $this->em->getRepository('CadolesCoreBundle:UserGroup')->findAll(); + foreach($usergroups as $usergroup) { + if(!$usergroup->getRolegroup()) { + $role=0; + if($usergroup->getFgmanager()) { + $role=50; + if($usergroup->getUser()==$usergroup->getGroup()->getOwner()) $role=100; + } + $usergroup->setRolegroup($role); + $this->em->persist($usergroup); + $this->em->flush(); + } + } + } diff --git a/src/ninegate-1.0/src/Cadoles/CoreBundle/Command/SynchroCommand.php b/src/ninegate-1.0/src/Cadoles/CoreBundle/Command/SynchroCommand.php index 1ffb91c6..50459f9d 100644 --- a/src/ninegate-1.0/src/Cadoles/CoreBundle/Command/SynchroCommand.php +++ b/src/ninegate-1.0/src/Cadoles/CoreBundle/Command/SynchroCommand.php @@ -899,6 +899,7 @@ class SynchroCommand extends Command $member= new UserGroup(); $member->setGroup($group); $member->setUser($user); + $member->setRolegroup(0); } // Si modèle scribe @@ -907,7 +908,7 @@ class SynchroCommand extends Command if($ldap_template=="scribe"&&$scribe_master) { $ldapfilter="(|(&(uid=".$user->getUsername().")(ENTPersonProfils=enseignant))(&(uid=".$user->getUsername().")(typeadmin=0))(&(uid=".$user->getUsername().")(typeadmin=2)))"; $results = $this->ldap->search($ldapfilter, ['uid'], $this->ldap_basedn); - if($results) $member->setFgmanager(true); + if($results) $member->setRolegroup(50); } $this->em->persist($member); diff --git a/src/ninegate-1.0/src/Cadoles/CoreBundle/Controller/FileController.php b/src/ninegate-1.0/src/Cadoles/CoreBundle/Controller/FileController.php index 8a515970..55cf9d84 100644 --- a/src/ninegate-1.0/src/Cadoles/CoreBundle/Controller/FileController.php +++ b/src/ninegate-1.0/src/Cadoles/CoreBundle/Controller/FileController.php @@ -720,8 +720,9 @@ class FileController extends Controller // On s'assure que l'utilisateur à la permission de voir $page=$widget->getPage(); - $em->getRepository("CadolesPortalBundle:Page")->getPermission($this->getUser(),$page,$cansee,$canupdate); + $em->getRepository("CadolesPortalBundle:Page")->getPermission($this->getUser(),$page,$cansee,$canupdate,$canadd); if(!$cansee) throw $this->createNotFoundException('Permission denied'); + return $canadd; break; case "projecttask": @@ -734,6 +735,7 @@ class FileController extends Controller $user=$this->getUser(); $em->getRepository("CadolesPortalBundle:Project")->getPermission($user,$project,$cansee,$canupdate,$canadd); if(!$cansee) throw $this->createNotFoundException('Permission denied'); + return $canupdate; break; case "calendarevent": @@ -744,13 +746,12 @@ class FileController extends Controller // On s'assure que l'utilisateur à la permission de voir $calendar=$calendarevent->getCalendar(); $user=$this->getUser(); - $em->getRepository("CadolesPortalBundle:Calendar")->getPermission($user,$calendar,$cansee,$canupdate); + $em->getRepository("CadolesPortalBundle:Calendar")->getPermission($user,$calendar,$cansee,$canupdate,$canadd); if(!$cansee) throw $this->createNotFoundException('Permission denied'); + return $canadd; break; } } else $canupdate=true; - - return $canupdate; } } 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 183384a7..f60ffc2e 100644 --- a/src/ninegate-1.0/src/Cadoles/CoreBundle/Controller/GroupController.php +++ b/src/ninegate-1.0/src/Cadoles/CoreBundle/Controller/GroupController.php @@ -178,19 +178,19 @@ class GroupController extends Controller $action.="$data->getId()))."'>"; } else { - $fgproprio=($user==$data->getOwner()); - $fgmanager=false; + $fgcanupdate=($user==$data->getOwner()); + $fgcanmanage=false; $usergroup=$this->getDoctrine()->getRepository("CadolesCoreBundle:UserGroup")->findOneBy(["user"=>$this->getUser(),"group"=>$data]); - if($usergroup) $fgmanager=$usergroup->getFgmanager(); + if($usergroup) $fgcanmanage=($usergroup->getRolegroup()>=90); // Modification possible uniquement si l'utilisateur est propriétaire du groupe - if($fgproprio) { + if($fgcanupdate) { $action .="$data->getId()))."'>"; $action .="$data->getId()))."'>"; } // Gestion des utilisateurs du groupe uniquement pour le proprio ou les managers - if($fgproprio||$fgmanager) { + if($fgcanupdate||$fgcanmanage) { $action .="$data->getId()))."'>"; } else { @@ -370,12 +370,10 @@ class GroupController extends Controller if($group->getLdapfilter()==""&&$group->getAttributes()=="") $action.=""; - $fgmanager=""; - // Avatar $avatar="getAvatar()."' style='width:30px;background-color:#337ab7;margin:auto;display:block;cursor:pointer;'>"; - array_push($output["data"],array("DT_RowId"=>"user".$data->getId(),$action,$avatar,$data->getUsername(),$data->getEmail(),"",$fgmanager)); + array_push($output["data"],array("DT_RowId"=>"user".$data->getId(),$action,$avatar,$data->getUsername(),$data->getEmail(),"","")); } // Retour @@ -494,6 +492,7 @@ class GroupController extends Controller } $datas=$qb->setFirstResult($start)->setMaxResults($length)->getQuery()->getResult(); + $user=$this->getUser(); foreach($datas as $data) { // Propriétaire @@ -509,13 +508,17 @@ class GroupController extends Controller $avatar="getAvatar()."' style='width:30px;background-color:#337ab7;margin:auto;display:block;cursor:pointer'>"; // Flag manager - $fgmanager=""; + $rolegroup=""; if($fgcanshare) { - - $checked=($usergroup->getFgmanager()?"checked":""); - $fgmanager=""; - if($fgproprio) $fgmanager="Propriétaire du groupe"; - + if($fgproprio) $rolegroup="Propriétaire du groupe"; + elseif($user==$usergroup->getUser()) $rolegroup="Gestionnaire"; + else { + $selectuser=($usergroup->getRolegroup()==0?"selected='selected'":""); + $selectwritter=($usergroup->getRolegroup()==50?"selected='selected'":""); + $selectmanager=($usergroup->getRolegroup()==90?"selected='selected'":""); + + $rolegroup=''; + } } // Visite @@ -524,7 +527,7 @@ class GroupController extends Controller $visite=$usergroup->getVisitedate()->format("d/m/Y H:i")."
nb = ".$usergroup->getVisitecpt(); } - array_push($output["data"],array("DT_RowId"=>"user".$data->getId(),$action,$avatar,$data->getUsername(),$data->getEmail(),$visite,$fgmanager)); + array_push($output["data"],array("DT_RowId"=>"user".$data->getId(),$action,$avatar,$data->getUsername(),$data->getEmail(),$visite,$rolegroup)); } // Retour @@ -557,11 +560,12 @@ class GroupController extends Controller } $key = Uuid::uuid4(); - $usergroup=new Usergroup; + $usergroup=new UserGroup(); $user=$em->getRepository("CadolesCoreBundle:User")->find($userid); $usergroup->setUser($user); $usergroup->setGroup($group); $usergroup->setKeyvalue($key); + $usergroup->setRolegroup(0); $em->persist($usergroup); $em->flush(); @@ -633,10 +637,11 @@ class GroupController extends Controller "body_html"=>nl2br($text), "body_text"=>$text ); - $managers=$em->getRepository("CadolesCoreBundle:Usergroup")->findBy(array("group"=>$groupid,"fgmanager"=>true)); + $usergroups=$em->getRepository("CadolesCoreBundle:Usergroup")->findBy(array("group"=>$groupid)); $to=array(); - foreach($managers as $manager) { - array_push($to,$manager->getUser()->getEmail()); + foreach($usergroups as $usergroup) { + if($usergroup->getRolegroup()>=90) + array_push($to,$usergroup->getUser()->getEmail()); } $from = $this->getParameter('noreply');; @@ -678,10 +683,11 @@ class GroupController extends Controller "body_html"=>nl2br($text), "body_text"=>$text ); - $managers=$em->getRepository("CadolesCoreBundle:Usergroup")->findBy(array("group"=>$group,"fgmanager"=>true)); + $usergroups=$em->getRepository("CadolesCoreBundle:Usergroup")->findBy(array("group"=>$group)); $to=array(); - foreach($managers as $manager) { - array_push($to,$manager->getUser()->getEmail()); + foreach($usergroups as $usergroup) { + if($usergroup->getRolegroup()>=90) + array_push($to,$usergroup->getUser()->getEmail()); } $from = $this->getParameter('noreply');; @@ -695,7 +701,7 @@ class GroupController extends Controller return $this->redirect($this->generateUrl("cadoles_core_user_group")); } - public function switchmanagerAction(Request $request,$access="config") + public function changeroleAction(Request $request,$access="config") { // S'assurer que c'est un appel ajax if (!$request->isXmlHttpRequest()) { @@ -707,12 +713,13 @@ class GroupController extends Controller $output=array(); $userid=$request->request->get('user'); $groupid=$request->request->get('group'); + $role=$request->request->get('role'); $group=$em->getRepository("CadolesCoreBundle:Group")->find($groupid); $this->canManager($group,$access); $data = $em->getRepository("CadolesCoreBundle:Usergroup")->findOneBy(array("user"=>$userid,"group"=>$groupid)); - if($data) $data->setFgmanager(!$data->getFgmanager()); + if($data) $data->setRolegroup($role); $em->persist($data); $em->flush(); @@ -1241,8 +1248,8 @@ class GroupController extends Controller protected function canManager($group,$access) { if($access!="config") { $em = $this->getDoctrine()->getManager(); - $ismanager=$em->getRepository("CadolesCoreBundle:Usergroup")->findOneBy(["group"=>$group,"user"=>$this->getUser(),"fgmanager"=>true]); - if(!$ismanager) + $user=$em->getRepository("CadolesCoreBundle:Usergroup")->findOneBy(["group"=>$group,"user"=>$this->getUser()]); + if(!$user||$user->getRolegroup()<90) throw $this->createNotFoundException('Permission denied'); } } @@ -1258,19 +1265,27 @@ class GroupController extends Controller protected function ctrlOwner($group) { $em = $this->getDoctrine()->getManager(); + // Le propriétaire passe manager + $usergroups=$em->getRepository("CadolesCoreBundle:Usergroup")->findBy(["group"=>$group,"rolegroup"=>"100"]); + foreach($usergroups as $usergroup) { + $usergroup->setRolegroup(90); + $em->persist($usergroup); + $em->flush(); + } + + // Le propriétaire prend son role dans le groupe if($group->getOwner()) { $usergroup=$em->getRepository("CadolesCoreBundle:Usergroup")->findOneBy(["group"=>$group,"user"=>$group->getOwner()]); if(!$usergroup) { $key = Uuid::uuid4(); - $usergroup=new Usergroup; + $usergroup=new UserGroup(); $usergroup->setUser($group->getOwner()); $usergroup->setGroup($group); $usergroup->setKeyvalue($key); } - $usergroup->setFgmanager(true); + $usergroup->setRolegroup(100); $em->persist($usergroup); $em->flush(); - } } diff --git a/src/ninegate-1.0/src/Cadoles/CoreBundle/Controller/RegistrationController.php b/src/ninegate-1.0/src/Cadoles/CoreBundle/Controller/RegistrationController.php index 78abe42e..31749669 100755 --- a/src/ninegate-1.0/src/Cadoles/CoreBundle/Controller/RegistrationController.php +++ b/src/ninegate-1.0/src/Cadoles/CoreBundle/Controller/RegistrationController.php @@ -544,11 +544,12 @@ class RegistrationController extends Controller $group=$em->getRepository("CadolesCoreBundle:Group")->find($groupid); if($group) { $key = Uuid::uuid4(); - $usergroup=new Usergroup; + $usergroup=new UserGroup(); $user=$em->getRepository("CadolesCoreBundle:User")->find($userid); $usergroup->setUser($user); $usergroup->setGroup($group); $usergroup->setKeyvalue($key); + $usergroup->setRolegroup(0); $em->persist($usergroup); $em->flush(); 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 ede07371..fe9c4613 100644 --- a/src/ninegate-1.0/src/Cadoles/CoreBundle/Controller/UserController.php +++ b/src/ninegate-1.0/src/Cadoles/CoreBundle/Controller/UserController.php @@ -419,6 +419,7 @@ class UserController extends Controller $datagroup = $group; $usergroup->setGroup($datagroup); $usergroup->setKeyvalue($key); + $usergroup->setRolegroup(0); $em->persist($usergroup); $em->flush(); } @@ -569,6 +570,7 @@ class UserController extends Controller $datagroup = $group; $usergroup->setGroup($datagroup); $usergroup->setKeyvalue($key); + $usergroup->setRolegroup(0); $em->persist($usergroup); $em->flush(); } @@ -629,12 +631,14 @@ class UserController extends Controller "body_html"=>nl2br($text), "body_text"=>$text ); - $managers=$em->getRepository("CadolesCoreBundle:Usergroup")->findBy(array("group"=>$group,"fgmanager"=>true)); + $usergroups=$em->getRepository("CadolesCoreBundle:Usergroup")->findBy(array("group"=>$group)); $to=array(); - foreach($managers as $manager) { - array_push($to,$manager->getUser()->getEmail()); + foreach($usergroups as $usergroup) { + if($usergroup->getRolegroup()>=90) + array_push($to,$usergroup->getUser()->getEmail()); } + $from = $this->getParameter('noreply');; $fromName = $this->get('session')->get('appname'); $message = $this->container->get('cadoles.core.service.mail'); 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 792a4a85..8a76a355 100644 --- a/src/ninegate-1.0/src/Cadoles/CoreBundle/Entity/UserGroup.php +++ b/src/ninegate-1.0/src/Cadoles/CoreBundle/Entity/UserGroup.php @@ -37,9 +37,15 @@ class UserGroup /** * @ORM\Column(type="boolean", options={"default" : false}) + * CE CHAMP N'EST PLUS UTILSE */ private $fgmanager = false; - + + /** + * @ORM\Column(type="integer", length=60, nullable=true) + */ + private $rolegroup; + /** * @ORM\Column(type="string", length=60, nullable=true) */ @@ -208,4 +214,28 @@ class UserGroup { return $this->visitecpt; } + + /** + * Set rolegroup + * + * @param integer $rolegroup + * + * @return UserGroup + */ + public function setRolegroup($rolegroup) + { + $this->rolegroup = $rolegroup; + + return $this; + } + + /** + * Get rolegroup + * + * @return integer + */ + public function getRolegroup() + { + return $this->rolegroup; + } } diff --git a/src/ninegate-1.0/src/Cadoles/CoreBundle/EventListener/syncUser.php b/src/ninegate-1.0/src/Cadoles/CoreBundle/EventListener/syncUser.php index 5108362b..346b94cb 100644 --- a/src/ninegate-1.0/src/Cadoles/CoreBundle/EventListener/syncUser.php +++ b/src/ninegate-1.0/src/Cadoles/CoreBundle/EventListener/syncUser.php @@ -181,6 +181,7 @@ class syncUser implements EventSubscriber $data->setUser($user); $data->setGroup($fgall[0]); $data->setKeyvalue($key); + $data->setRolegroup(0); $this->em->persist($data); $this->em->flush(); } diff --git a/src/ninegate-1.0/src/Cadoles/CoreBundle/Repository/GroupRepository.php b/src/ninegate-1.0/src/Cadoles/CoreBundle/Repository/GroupRepository.php index 85a9e554..2aedac3c 100644 --- a/src/ninegate-1.0/src/Cadoles/CoreBundle/Repository/GroupRepository.php +++ b/src/ninegate-1.0/src/Cadoles/CoreBundle/Repository/GroupRepository.php @@ -63,6 +63,7 @@ class GroupRepository extends \Doctrine\ORM\EntityRepository $usergroup->setUser($user); $usergroup->setGroup($retgroup); $usergroup->setKeyvalue($key); + $usergroup->setRolegroup(0); $this->_em->persist($usergroup); $this->_em->flush(); 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 2bc28289..02bc0abe 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 @@ -494,9 +494,9 @@ cadoles_core_config_group_ajax_usergroup_del: path: /config/group/ajax/usergroupdel defaults: { _controller: CadolesCoreBundle:Group:usergroupdel, access: config } -cadoles_core_config_group_ajax_switchmanager: - path: /config/group/ajax/switchmanager - defaults: { _controller: CadolesCoreBundle:Group:switchmanager, access: config } +cadoles_core_config_group_ajax_changerole: + path: /config/group/ajax/changerole + defaults: { _controller: CadolesCoreBundle:Group:changerole, access: config } cadoles_core_config_group_export: path: /config/group/export @@ -559,9 +559,9 @@ cadoles_core_user_group_ajax_usergroup_del: path: /user/group/ajax/usergroupdel defaults: { _controller: CadolesCoreBundle:Group:usergroupdel, access: user } -cadoles_core_user_group_ajax_switchmanager: - path: /user/group/ajax/switchmanager - defaults: { _controller: CadolesCoreBundle:Group:switchmanager, access: user } +cadoles_core_user_group_ajax_changerole: + path: /user/group/ajax/changerole + defaults: { _controller: CadolesCoreBundle:Group:changerole, access: user } cadoles_core_user_group_usergroup_export: path: /user/group/users/export/{id} diff --git a/src/ninegate-1.0/src/Cadoles/CoreBundle/Resources/views/Group/users.html.twig b/src/ninegate-1.0/src/Cadoles/CoreBundle/Resources/views/Group/users.html.twig index 3cc5e48b..6d7448a1 100644 --- a/src/ninegate-1.0/src/Cadoles/CoreBundle/Resources/views/Group/users.html.twig +++ b/src/ninegate-1.0/src/Cadoles/CoreBundle/Resources/views/Group/users.html.twig @@ -9,10 +9,15 @@ Fermer {% endif %} - {% if moderegistration!="none" and masteridentity=="SQL"%} + {% if moderegistration!="none" and masteridentity=="SQL" and group.fgcanshare %} Inviter des personnes non listées ci-dessous Suivi des Invitations {%endif%} + + {% if group.fgcanshare %} + + {%endif%} + Exporter CSV

@@ -70,6 +75,333 @@ + + {% endblock %} {% block localjavascript %} @@ -152,15 +484,17 @@ }); } - function switchManager(id) { + function changeRole(id) { $.ajax({ method: "POST", - url: "{{ path('cadoles_core_'~access~'_group_ajax_switchmanager') }}", + url: "{{ path('cadoles_core_'~access~'_group_ajax_changerole') }}", data: { "group": {{ group.id }}, "user": id, + "role": $("#roleuser-"+id).val(), } }); + } function showMail() { diff --git a/src/ninegate-1.0/src/Cadoles/PortalBundle/Controller/BlogarticleController.php b/src/ninegate-1.0/src/Cadoles/PortalBundle/Controller/BlogarticleController.php index 9402a3a0..5e00f498 100644 --- a/src/ninegate-1.0/src/Cadoles/PortalBundle/Controller/BlogarticleController.php +++ b/src/ninegate-1.0/src/Cadoles/PortalBundle/Controller/BlogarticleController.php @@ -106,6 +106,7 @@ class BlogarticleController extends Controller if($access=="user") { $em->getRepository("CadolesPortalBundle:Blog")->getPermission($this->getUser(),$entity->getBlog(),$cansee,$canupdate,$canadd); if(!$canadd) throw $this->createNotFoundException('Permission denied'); + elseif(!$canupdate&&$this->getUser()!=$entity->getUser()) throw $this->createNotFoundException('Permission denied'); } // Création du formulaire @@ -157,6 +158,7 @@ class BlogarticleController extends Controller if($access=="user") { $em->getRepository("CadolesPortalBundle:Blog")->getPermission($this->getUser(),$entity->getBlog(),$cansee,$canupdate,$canadd); if(!$canadd) throw $this->createNotFoundException('Permission denied'); + elseif(!$canupdate&&$this->getUser()!=$entity->getUser()) throw $this->createNotFoundException('Permission denied'); } // Suppression @@ -208,12 +210,10 @@ class BlogarticleController extends Controller } else { $em->getRepository("CadolesPortalBundle:Blog")->getPermission($user,$entity->getBlog(),$cansee,$canupdate,$canadd); + if(!$canupdate&&$this->getUser()==$entity->getUser()) $canupdate=true; } if(!$cansee) throw $this->createNotFoundException('Permission denied'); - - $canupdate=false; - if($user) $canupdate=true; } $em->getRepository("CadolesPortalBundle:Blogarticle")->getBlogsArticles($blogs,0,10,$count,$blogarticles); diff --git a/src/ninegate-1.0/src/Cadoles/PortalBundle/Controller/BlogcommentController.php b/src/ninegate-1.0/src/Cadoles/PortalBundle/Controller/BlogcommentController.php index d034eb18..d1dc6bfe 100644 --- a/src/ninegate-1.0/src/Cadoles/PortalBundle/Controller/BlogcommentController.php +++ b/src/ninegate-1.0/src/Cadoles/PortalBundle/Controller/BlogcommentController.php @@ -145,7 +145,8 @@ class BlogcommentController extends Controller // On s'assure que l'utilisateur à la permission de modifier if($access=="user") { $em->getRepository("CadolesPortalBundle:Blog")->getPermission($this->getUser(),$entity->getBlogarticle()->getBlog(),$cansee,$canupdate,$canadd); - if(!$canadd&&$this->getUser()!=$entity->getUser()) throw $this->createNotFoundException('Permission denied'); + if(!$canupdate&&$this->getUser()==$entity->getBlogarticle()->getUser()) $canupdate=true; + if(!$canupdate&&$this->getUser()!=$entity->getUser()) throw $this->createNotFoundException('Permission denied'); } // Création du formulaire @@ -196,7 +197,7 @@ class BlogcommentController extends Controller // On s'assure que l'utilisateur à la permission de supprimer if($access=="user") { $em->getRepository("CadolesPortalBundle:Blog")->getPermission($this->getUser(),$entity->getBlogarticle()->getBlog(),$cansee,$canupdate,$canadd); - if(!$canadd&&$this->getUser()!=$entity->getUser()) throw $this->createNotFoundException('Permission denied'); + if(!$canupdate&&$this->getUser()!=$entity->getUser()) throw $this->createNotFoundException('Permission denied'); } // Suppression diff --git a/src/ninegate-1.0/src/Cadoles/PortalBundle/Controller/BookmarkController.php b/src/ninegate-1.0/src/Cadoles/PortalBundle/Controller/BookmarkController.php index 61d21a85..fe8d8def 100644 --- a/src/ninegate-1.0/src/Cadoles/PortalBundle/Controller/BookmarkController.php +++ b/src/ninegate-1.0/src/Cadoles/PortalBundle/Controller/BookmarkController.php @@ -35,6 +35,19 @@ class BookmarkController extends Controller if (!$pagewidget) throw $this->createNotFoundException('Unable to find entity.'); } + // Vérifier que cet enregistrement est modifiable + if($access=="user") { + if($usage=="user") { + $user=$pagewidget->getPage()->getUser(); + if($user!=$this->getUser()) throw $this->createNotFoundException('Permission denied'); + } + else { + $groupentity=$this->getDoctrine()->getRepository("CadolesCoreBundle:Group")->find($group); + $usergroup=$this->getDoctrine()->getRepository("CadolesCoreBundle:UserGroup")->findoneby(["user"=>$this->getUser(),"group"=>$groupentity]); + if(!$usergroup or $usergroup->getRolegroup()<50) throw $this->createNotFoundException('Permission denied'); + } + } + // Création du formulaire $form = $this->createForm(BookmarkType::class,$data,array("mode"=>"submit")); @@ -123,8 +136,8 @@ class BookmarkController extends Controller } else { $groupentity=$this->getDoctrine()->getRepository("CadolesCoreBundle:Group")->find($group); - $fgmanager=$this->getDoctrine()->getRepository("CadolesCoreBundle:UserGroup")->findoneby(["user"=>$this->getUser(),"group"=>$groupentity,"fgmanager"=>true]); - if(!$fgmanager) throw $this->createNotFoundException('Permission denied'); + $usergroup=$this->getDoctrine()->getRepository("CadolesCoreBundle:UserGroup")->findoneby(["user"=>$this->getUser(),"group"=>$groupentity]); + if(!$usergroup or $usergroup->getRolegroup()<50) throw $this->createNotFoundException('Permission denied'); } } @@ -214,8 +227,8 @@ class BookmarkController extends Controller } else { $groupentity=$this->getDoctrine()->getRepository("CadolesCoreBundle:Group")->find($group); - $fgmanager=$this->getDoctrine()->getRepository("CadolesCoreBundle:UserGroup")->findoneby(["user"=>$this->getUser(),"group"=>$groupentity,"fgmanager"=>true]); - if(!$fgmanager) throw $this->createNotFoundException('Permission denied'); + $usergroup=$this->getDoctrine()->getRepository("CadolesCoreBundle:UserGroup")->findoneby(["user"=>$this->getUser(),"group"=>$groupentity]); + if(!$usergroup or $usergroup->getRolegroup()<50) throw $this->createNotFoundException('Permission denied'); } } diff --git a/src/ninegate-1.0/src/Cadoles/PortalBundle/Controller/CalendarController.php b/src/ninegate-1.0/src/Cadoles/PortalBundle/Controller/CalendarController.php index 905b27d8..1bcb245a 100644 --- a/src/ninegate-1.0/src/Cadoles/PortalBundle/Controller/CalendarController.php +++ b/src/ninegate-1.0/src/Cadoles/PortalBundle/Controller/CalendarController.php @@ -220,7 +220,7 @@ class CalendarController extends Controller // On s'assure que l'utilisateur à la permission de modifier if($access=="user") { - $em->getRepository($this->labelentity)->getPermission($this->getUser(),$entity,$cansee,$canupdate); + $em->getRepository($this->labelentity)->getPermission($this->getUser(),$entity,$cansee,$canupdate,$canadd); if(!$canupdate) throw $this->createNotFoundException('Permission denied'); } $oldpassword=$entity->getPasswordDecrypt(); @@ -272,7 +272,7 @@ class CalendarController extends Controller // On s'assure que l'utilisateur à la permission de modifier if($access=="user") { - $em->getRepository($this->labelentity)->getPermission($this->getUser(),$entity,$cansee,$canupdate); + $em->getRepository($this->labelentity)->getPermission($this->getUser(),$entity,$cansee,$canupdate,$canadd); if(!$canupdate) throw $this->createNotFoundException('Permission denied'); } @@ -308,7 +308,7 @@ class CalendarController extends Controller // On s'assure que l'utilisateur à la permission de supprimer if($access=="user") { - $em->getRepository($this->labelentity)->getPermission($this->getUser(),$entity,$cansee,$canupdate); + $em->getRepository($this->labelentity)->getPermission($this->getUser(),$entity,$cansee,$canupdate,$canadd); if(!$canupdate) throw $this->createNotFoundException('Permission denied'); } @@ -369,6 +369,7 @@ class CalendarController extends Controller $calendar->setType(0); $calendar->setUser($user); $calendar->setCanupdate(true); + $calendar->setCanadd(true); $key = Uuid::uuid4(); $calendar->setKeyvalue($key); $em->persist($calendar); diff --git a/src/ninegate-1.0/src/Cadoles/PortalBundle/Controller/CalendareventController.php b/src/ninegate-1.0/src/Cadoles/PortalBundle/Controller/CalendareventController.php index 76bbde7f..07129f7a 100644 --- a/src/ninegate-1.0/src/Cadoles/PortalBundle/Controller/CalendareventController.php +++ b/src/ninegate-1.0/src/Cadoles/PortalBundle/Controller/CalendareventController.php @@ -40,9 +40,10 @@ class CalendareventController extends Controller if($access=="config") $calendar->setCanupdate(true); else { - $this->getDoctrine()->getRepository("CadolesPortalBundle:Calendar")->getPermission($this->getUser(),$calendar,$cansee,$canupdate); + $this->getDoctrine()->getRepository("CadolesPortalBundle:Calendar")->getPermission($this->getUser(),$calendar,$cansee,$canupdate,$canadd); if(!$cansee) throw $this->createNotFoundException('Permission denied'); $calendar->setCanupdate($canupdate); + $calendar->setCanadd($canadd); } $calendars=[$calendar]; @@ -67,7 +68,7 @@ class CalendareventController extends Controller $tmp['color'] = "#".(is_null($calendar->getColor())?$this->get('session')->get('color')["main"]:$calendar->getColor()); $tmp['allDay'] = $calendarevent->getAllday(); $tmp['calendar'] = $calendar->getId(); - $tmp['editable'] = $calendarevent->getCalendar()->getCanupdate(); + $tmp['editable'] = $calendarevent->getCalendar()->getCanadd(); $tmp['files'] = $this->loadpj($tmp['id'] ); array_push($events,$tmp); @@ -154,8 +155,8 @@ class CalendareventController extends Controller // On s'assure que l'utilisateur à la permission de supprimer if($access=="user") { - $em->getRepository("CadolesPortalBundle:Calendar")->getPermission($this->getUser(),$calendar,$cansee,$canupdate); - if(!$canupdate) throw $this->createNotFoundException('Permission denied'); + $em->getRepository("CadolesPortalBundle:Calendar")->getPermission($this->getUser(),$calendar,$cansee,$canupdate,$canadd); + if(!$canadd) throw $this->createNotFoundException('Permission denied'); } $calendarevent=new Calendarevent(); @@ -208,8 +209,8 @@ class CalendareventController extends Controller // On s'assure que l'utilisateur à la permission if($access=="user") { - $em->getRepository("CadolesPortalBundle:Calendar")->getPermission($this->getUser(),$calendar,$cansee,$canupdate); - if(!$canupdate) throw $this->createNotFoundException('Permission denied'); + $em->getRepository("CadolesPortalBundle:Calendar")->getPermission($this->getUser(),$calendar,$cansee,$canupdate,$canadd); + if(!$canadd) throw $this->createNotFoundException('Permission denied'); } $calendarevent = $this->getDoctrine()->getRepository("CadolesPortalBundle:Calendarevent")->find($id); @@ -266,8 +267,8 @@ class CalendareventController extends Controller // On s'assure que l'utilisateur à la permission if($access=="user") { - $em->getRepository("CadolesPortalBundle:Calendar")->getPermission($this->getUser(),$calendar,$cansee,$canupdate); - if(!$canupdate) throw $this->createNotFoundException('Permission denied'); + $em->getRepository("CadolesPortalBundle:Calendar")->getPermission($this->getUser(),$calendar,$cansee,$canupdate,$canadd); + if(!$canadd) throw $this->createNotFoundException('Permission denied'); } $calendarevent = $this->getDoctrine()->getRepository("CadolesPortalBundle:Calendarevent")->find($id); @@ -291,8 +292,8 @@ class CalendareventController extends Controller // On s'assure que l'utilisateur à la permission de modifier if($access=="user") { - $em->getRepository("CadolesPortalBundle:Calendar")->getPermission($this->getUser(),$calendar,$cansee,$canupdate); - if(!$canupdate) throw $this->createNotFoundException('Permission denied'); + $em->getRepository("CadolesPortalBundle:Calendar")->getPermission($this->getUser(),$calendar,$cansee,$canupdate,$canadd); + if(!$canadd) throw $this->createNotFoundException('Permission denied'); } // Création du formulaire @@ -329,8 +330,8 @@ class CalendareventController extends Controller // On s'assure que l'utilisateur à la permission if($access=="user") { - $em->getRepository("CadolesPortalBundle:Calendar")->getPermission($this->getUser(),$calendar,$cansee,$canupdate); - if(!$canupdate) throw $this->createNotFoundException('Permission denied'); + $em->getRepository("CadolesPortalBundle:Calendar")->getPermission($this->getUser(),$calendar,$cansee,$canupdate,$canadd); + if(!$canadd) throw $this->createNotFoundException('Permission denied'); } $files = $this->loadpj($id); diff --git a/src/ninegate-1.0/src/Cadoles/PortalBundle/Controller/PageController.php b/src/ninegate-1.0/src/Cadoles/PortalBundle/Controller/PageController.php index e434de97..2d3ddfc5 100644 --- a/src/ninegate-1.0/src/Cadoles/PortalBundle/Controller/PageController.php +++ b/src/ninegate-1.0/src/Cadoles/PortalBundle/Controller/PageController.php @@ -286,7 +286,7 @@ class PageController extends Controller // On s'assure que l'utilisateur à la permission de modifier if($access=="user") { - $em->getRepository($this->labelentity)->getPermission($this->getUser(),$entity,$cansee,$canupdate); + $em->getRepository($this->labelentity)->getPermission($this->getUser(),$entity,$cansee,$canupdate,$canadd); if(!$canupdate) throw $this->createNotFoundException('Permission denied'); } @@ -369,7 +369,7 @@ class PageController extends Controller // On s'assure que l'utilisateur à la permission de modifier if($access=="user") { - $em->getRepository($this->labelentity)->getPermission($this->getUser(),$entity,$cansee,$canupdate); + $em->getRepository($this->labelentity)->getPermission($this->getUser(),$entity,$cansee,$canupdate,$canadd); if(!$canupdate) throw $this->createNotFoundException('Permission denied'); } @@ -408,7 +408,7 @@ class PageController extends Controller // On s'assure que l'utilisateur à la permission de supprimer if($access=="user") { - $em->getRepository($this->labelentity)->getPermission($this->getUser(),$entity,$cansee,$canupdate); + $em->getRepository($this->labelentity)->getPermission($this->getUser(),$entity,$cansee,$canupdate,$canadd); if(!$canupdate) throw $this->createNotFoundException('Permission denied'); } @@ -438,7 +438,7 @@ class PageController extends Controller // On s'assure que l'utilisateur à la permission if($access=="user") { - $em->getRepository($this->labelentity)->getPermission($this->getUser(),$entity,$cansee,$canupdate); + $em->getRepository($this->labelentity)->getPermission($this->getUser(),$entity,$cansee,$canupdate,$canadd); if(!$canupdate) throw $this->createNotFoundException('Permission denied'); } @@ -474,7 +474,7 @@ 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); + $em->getRepository($this->labelentity)->getPermission($this->getUser(),$entity,$cansee,$canupdate,$canadd); if(!$cansee) { return $this->render('CadolesCoreBundle:Core:reconnect.html.twig', [ 'useheader' => false, diff --git a/src/ninegate-1.0/src/Cadoles/PortalBundle/Controller/PagewidgetController.php b/src/ninegate-1.0/src/Cadoles/PortalBundle/Controller/PagewidgetController.php index 657ab8f9..20803cc6 100644 --- a/src/ninegate-1.0/src/Cadoles/PortalBundle/Controller/PagewidgetController.php +++ b/src/ninegate-1.0/src/Cadoles/PortalBundle/Controller/PagewidgetController.php @@ -30,14 +30,15 @@ class PagewidgetController extends Controller private $access; private $look; private $mini; - private $selwidget; + private $selwidget; + private $usage; + private $group; private $cansee; - private $canudate; + private $canupdate; private $canadd; - private function searchArray($array, $key, $value) - { + private function searchArray($array, $key, $value) { $results = array(); if (is_array($array)) @@ -52,8 +53,7 @@ class PagewidgetController extends Controller return $results; } - private function entityForm(Pagewidget $entity,$idpage,$id,$access="config",$by="view") - { + private function entityForm(Pagewidget $entity,$idpage,$id,$access="config",$by="view") { if ($this->getDoctrine()->getManager()->contains($entity)) { $widgettype= $this->getDoctrine()->getManager()->getRepository("CadolesPortalBundle:Pagewidget")->find($id)->getWidget(); $params = $widgettype->getParameter(); @@ -97,8 +97,7 @@ class PagewidgetController extends Controller } } - public function submitAction(Request $request,$idpage,$idwidgettype,$access="config") - { + public function submitAction(Request $request,$idpage,$idwidgettype,$access="config") { $by=$request->query->get('by'); $entity = new Pagewidget(); $form = $this->entityForm($entity,$idpage,$idwidgettype,$access,$by); @@ -190,8 +189,7 @@ class PagewidgetController extends Controller ]); } - public function updateAction(Request $request,$idpage,$idwidget,$access="config") - { + public function updateAction(Request $request,$idpage,$idwidget,$access="config") { $by=$request->query->get('by'); $usage=$request->query->get('usage'); $group=$request->query->get('group'); @@ -203,7 +201,7 @@ class PagewidgetController extends Controller // On s'assure que l'utilisateur à la permission de modifier if($access=="user") { - $em->getRepository("CadolesPortalBundle:Page")->getPermission($this->getUser(),$entity->getPage(),$cansee,$canupdate); + $em->getRepository("CadolesPortalBundle:Page")->getPermission($this->getUser(),$entity->getPage(),$cansee,$canupdate,$canadd); if(!$canupdate) throw $this->createNotFoundException('Permission denied'); } @@ -273,8 +271,7 @@ class PagewidgetController extends Controller ]); } - public function deleteAction(Request $request,$access="config") - { + public function deleteAction(Request $request,$access="config") { // S'assurer que c'est un appel ajax if (!$request->isXmlHttpRequest()) return new JsonResponse(array('message' => 'Interdit'), 400); @@ -289,7 +286,7 @@ class PagewidgetController extends Controller // On s'assure que l'utilisateur à la permission de supprimer if($access=="user") { - $em->getRepository("CadolesPortalBundle:Page")->getPermission($this->getUser(),$entity->getPage(),$cansee,$canupdate); + $em->getRepository("CadolesPortalBundle:Page")->getPermission($this->getUser(),$entity->getPage(),$cansee,$canupdate,$canadd); if(!$canupdate) throw $this->createNotFoundException('Permission denied'); } @@ -315,8 +312,7 @@ class PagewidgetController extends Controller return $response; } - public function orderAction(Request $request) - { + public function orderAction(Request $request) { // S'assurer que c'est un appel ajax if (!$request->isXmlHttpRequest()) return new JsonResponse(array('message' => 'Interdit'), 400); @@ -367,7 +363,6 @@ class PagewidgetController extends Controller } - protected function getErrorForm($id,$form,$request,$idwidgettype,$page,$data,$mode) { if ($form->get('submit')->isClicked()&&$mode=="delete") { @@ -405,7 +400,9 @@ class PagewidgetController extends Controller $this->access = $access; $this->look = $request->query->get('look'); $this->selwidget = $request->query->get('selwidget'); - + $this->usage = $request->query->get('usage'); + $this->group = $request->query->get('group'); + // Le widget existe-t-il ? $this->entity = $this->em->getRepository($this->labelentity)->find($this->id); if (!$this->entity) throw $this->createNotFoundException('Unable to find entity.'); @@ -417,7 +414,7 @@ class PagewidgetController extends Controller else { // On s'assure que l'utilisateur à la permission de voir $this->page=$this->entity->getPage(); - $this->em->getRepository("CadolesPortalBundle:Page")->getPermission($this->user,$this->page,$this->cansee,$this->canupdate); + $this->em->getRepository("CadolesPortalBundle:Page")->getPermission($this->user,$this->page,$this->cansee,$this->canupdate,$this->canadd); if(!$this->cansee) throw $this->createNotFoundException('Permission denied'); } @@ -687,7 +684,6 @@ class PagewidgetController extends Controller ]); } - public function viewfluxAction(Request $request,$id,$access="config") { // Récupération de la requete $this->setRequest($request,$id,$access); @@ -894,7 +890,6 @@ class PagewidgetController extends Controller ]); } - public function viewrssAction(Request $request,$id,$access="config") { // Récupération de la requete $this->setRequest($request,$id,$access); @@ -1115,34 +1110,20 @@ class PagewidgetController extends Controller // Render return $this->getRender('viewbookmark.html.twig', [ + 'canadd' => $this->canadd, 'modedesktop' => $modedesktop, 'bookmarks' => $bookmarks, ]); } public function viewlinkAction(Request $request,$id,$access="config") { - $look=$request->query->get('look'); - $selwidget=$request->query->get('selwidget'); - - $em = $this->getDoctrine()->getManager(); - $entity = $em->getRepository($this->labelentity)->find($id); - if (!$entity) throw $this->createNotFoundException('Unable to find entity.'); - - // Permissions - if($access=="config") { - $canupdate = true; - } - else { - // On s'assure que l'utilisateur à la permission de voir - $page=$entity->getPage(); - $em->getRepository("CadolesPortalBundle:Page")->getPermission($this->getUser(),$page,$cansee,$canupdate); - if(!$cansee) throw $this->createNotFoundException('Permission denied'); - } + // Récupération de la requete + $this->setRequest($request,$id,$access); // Récupération des paramétres du widget $url=""; $target="_blank"; - foreach($entity->getParameter()["fields"] as $parameter) { + foreach($this->entity->getParameter()["fields"] as $parameter) { switch($parameter["id"]) { case "url": $url=$parameter["value"]; @@ -1153,44 +1134,21 @@ class PagewidgetController extends Controller } } - // Préference utilisateur - $this->getPreference($entity); - // Render - return $this->render($this->labelentity.':viewlink.html.twig', [ - 'entity' => $entity, + return $this->getRender('viewlink.html.twig', [ 'canadd' => false, - 'canupdate' => $canupdate, 'url' => $url, 'target' => $target, - 'access' => $access, - 'look' => $look, - 'mini' => ($look=="list"&&$entity->getId()!=$selwidget), ]); } public function vieweditorAction(Request $request,$id,$access="config") { - $look=$request->query->get('look'); - $selwidget=$request->query->get('selwidget'); - - $em = $this->getDoctrine()->getManager(); - $entity = $em->getRepository($this->labelentity)->find($id); - if (!$entity) throw $this->createNotFoundException('Unable to find entity.'); - - // Permissions - if($access=="config") { - $canupdate = true; - } - else { - // On s'assure que l'utilisateur à la permission de voir - $page=$entity->getPage(); - $em->getRepository("CadolesPortalBundle:Page")->getPermission($this->getUser(),$page,$cansee,$canupdate); - if(!$cansee) throw $this->createNotFoundException('Permission denied'); - } + // Récupération de la requete + $this->setRequest($request,$id,$access); // Récupération des paramétres du widget $html=""; - foreach($entity->getParameter()["fields"] as $parameter) { + foreach($this->entity->getParameter()["fields"] as $parameter) { switch($parameter["id"]) { case "html": $html=$parameter["value"]; @@ -1199,91 +1157,45 @@ class PagewidgetController extends Controller } } - // Préference utilisateur - $this->getPreference($entity); - // Render - return $this->render($this->labelentity.':vieweditor.html.twig', [ - 'entity' => $entity, + return $this->getRender('vieweditor.html.twig', [ 'canadd' => false, - 'canupdate' => $canupdate, 'html' => $html, - 'access' => $access, - 'look' => $look, - 'mini' => ($look=="list"&&$entity->getId()!=$selwidget), ]); } public function viewslideAction(Request $request,$id,$access="config") { - $look=$request->query->get('look'); - $selwidget=$request->query->get('selwidget'); - - $em = $this->getDoctrine()->getManager(); - $entity = $em->getRepository($this->labelentity)->find($id); - if (!$entity) throw $this->createNotFoundException('Unable to find entity.'); - - // Permissions - if($access=="config") { - $canupdate = true; - } - else { - // On s'assure que l'utilisateur à la permission de voir - $page=$entity->getPage(); - $em->getRepository("CadolesPortalBundle:Page")->getPermission($this->getUser(),$page,$cansee,$canupdate); - if(!$cansee) throw $this->createNotFoundException('Permission denied'); - } + // Récupération de la requete + $this->setRequest($request,$id,$access); // Récupération des paramétres du widget $interval="2"; - foreach($entity->getParameter()["fields"] as $parameter) { + foreach($this->entity->getParameter()["fields"] as $parameter) { switch($parameter["id"]) { case "interval": $interval=$parameter["value"]; break; } } - - // Préference utilisateur - $this->getPreference($entity); // Récupération des slides - $slides=$em->getRepository("CadolesPortalBundle:Slide")->findBy(["pagewidget"=>$entity],['roworder'=>'ASC','title'=>'ASC']); + $slides=$this->em->getRepository("CadolesPortalBundle:Slide")->findBy(["pagewidget"=>$this->entity],['roworder'=>'ASC','title'=>'ASC']); // Render - return $this->render($this->labelentity.':viewslide.html.twig', [ - 'entity' => $entity, - 'canadd' => $canupdate, - 'canupdate' => $canupdate, + return $this->getRender('viewslide.html.twig', [ + 'canadd' => $this->canadd, 'slides' => $slides, 'interval' => $interval, - 'access' => $access, - 'look' => $look, - 'mini' => ($look=="list"&&$entity->getId()!=$selwidget), ]); } public function viewfileAction(Request $request,$id,$access="config") { - $look=$request->query->get('look'); - $selwidget=$request->query->get('selwidget'); - - $em = $this->getDoctrine()->getManager(); - $entity = $em->getRepository($this->labelentity)->find($id); - if (!$entity) throw $this->createNotFoundException('Unable to find entity.'); - - // Permissions - if($access=="config") { - $canupdate = true; - } - else { - // On s'assure que l'utilisateur à la permission de voir - $page=$entity->getPage(); - $em->getRepository("CadolesPortalBundle:Page")->getPermission($this->getUser(),$page,$cansee,$canupdate); - if(!$cansee) throw $this->createNotFoundException('Permission denied'); - } + // Récupération de la requete + $this->setRequest($request,$id,$access); // Récupération des paramétres du widget $view="small"; - foreach($entity->getParameter()["fields"] as $parameter) { + foreach($this->entity->getParameter()["fields"] as $parameter) { switch($parameter["id"]) { case "modelist": $view=($parameter["value"]==0?"small":"list"); @@ -1291,45 +1203,17 @@ class PagewidgetController extends Controller } } - // Préference utilisateur - $this->getPreference($entity); - - return $this->render($this->labelentity.':viewfile.html.twig', [ - 'entity' => $entity, - 'canadd' => $canupdate, - 'canupdate' => $canupdate, - 'access' => $access, + // Render + return $this->getRender('viewfile.html.twig', [ + 'canadd' => $this->canadd, 'directory' => "widget-".$id, 'view' => $view, - 'look' => $look, - 'mini' => ($look=="list"&&$entity->getId()!=$selwidget), ]); - - - } public function viewgaleryAction(Request $request,$id,$access="config") { - $look=$request->query->get('look'); - $selwidget=$request->query->get('selwidget'); - - $em = $this->getDoctrine()->getManager(); - $entity = $em->getRepository($this->labelentity)->find($id); - if (!$entity) throw $this->createNotFoundException('Unable to find entity.'); - - // Permissions - if($access=="config") { - $canupdate = true; - } - else { - // On s'assure que l'utilisateur à la permission de voir - $page=$entity->getPage(); - $em->getRepository("CadolesPortalBundle:Page")->getPermission($this->getUser(),$page,$cansee,$canupdate); - if(!$cansee) throw $this->createNotFoundException('Permission denied'); - } - - // Préference utilisateur - $this->getPreference($entity); + // Récupération de la requete + $this->setRequest($request,$id,$access); $directory=$this->get('kernel')->getRootDir()."/../uploads/file/widget-".$id; $files=[]; @@ -1359,96 +1243,47 @@ class PagewidgetController extends Controller // Render - return $this->render($this->labelentity.':viewgalery.html.twig', [ - 'entity' => $entity, - 'canadd' => $canupdate, - 'canupdate' => $canupdate, + return $this->getRender('viewgalery.html.twig', [ + 'canadd' => $this->canadd, 'files' => $files, - 'access' => $access, - 'look' => $look, - 'mini' => ($look=="list"&&$entity->getId()!=$selwidget), ]); } public function viewcalendarAction(Request $request,$id,$access="config") { - $usage=$request->query->get('usage'); - $group=$request->query->get('group'); - $look=$request->query->get('look'); - $selwidget=$request->query->get('selwidget'); - - $em = $this->getDoctrine()->getManager(); - $entity = $em->getRepository($this->labelentity)->find($id); - if (!$entity) throw $this->createNotFoundException('Unable to find entity.'); - - if($group) $groupentity=$em->getRepository("CadolesCoreBundle:Group")->find($group); - - // Permissions - if($access=="config") { - $canupdate = true; - } - else { - // On s'assure que l'utilisateur à la permission de voir - $page=$entity->getPage(); - $em->getRepository("CadolesPortalBundle:Page")->getPermission($this->getUser(),$page,$cansee,$canupdate); - if(!$cansee) throw $this->createNotFoundException('Permission denied'); - } + // Récupération de la requete + $this->setRequest($request,$id,$access); // Récupération des paramétres du widget $nbday="0"; - foreach($entity->getParameter()["fields"] as $parameter) { + foreach($this->entity->getParameter()["fields"] as $parameter) { switch($parameter["id"]) { case "nbday": $nbday=$parameter["value"]; break; } } - - // Préference utilisateur - $this->getPreference($entity); // Récupérer les events de l'utilisateur $user=$this->getUser(); - $events=$em->getRepository("CadolesPortalBundle:Calendarevent")->getUserCalendarevents($user,$this->get('session')->get('color')["main"],$usage,$group,$firstcalendar); + $events=$this->em->getRepository("CadolesPortalBundle:Calendarevent")->getUserCalendarevents($user,$this->get('session')->get('color')["main"],$this->usage,$this->group,$firstcalendar); // Render - return $this->render($this->labelentity.':viewcalendar.html.twig', [ - 'entity' => $entity, - 'canadd' => $canupdate, - 'canupdate' => $canupdate, + return $this->getRender('viewcalendar.html.twig', [ + 'canadd' => $this->canadd, 'events' => $events, 'nbday' => $nbday, - 'access' => $access, 'firstcalendar' => $firstcalendar, - 'usage' => $usage, - 'look' => $look, - 'mini' => ($look=="list"&&$entity->getId()!=$selwidget), + 'usage' => $this->usage, ]); } public function viewblogAction(Request $request,$id,$access="config") { - $usage=$request->query->get('usage'); - $group=$request->query->get('group'); - $look=$request->query->get('look'); - $selwidget=$request->query->get('selwidget'); - - $em = $this->getDoctrine()->getManager(); - $entity = $em->getRepository($this->labelentity)->find($id); - if (!$entity) throw $this->createNotFoundException('Unable to find entity.'); - - // Permissions - if($access=="config") { - $canupdate = true; - } - else { - // On s'assure que l'utilisateur à la permission de voir - $page=$entity->getPage(); - $em->getRepository("CadolesPortalBundle:Page")->getPermission($this->getUser(),$page,$cansee,$canupdate); - if(!$cansee) throw $this->createNotFoundException('Permission denied'); - } + // Récupération de la requete + $this->setRequest($request,$id,$access); // Récupération des paramétres du widget $nbarticle=10; - foreach($entity->getParameter()["fields"] as $parameter) { + foreach($this->entity->getParameter()["fields"] as $parameter) { switch($parameter["id"]) { case "nbarticle": $nbarticle=$parameter["value"]; @@ -1456,64 +1291,38 @@ class PagewidgetController extends Controller } } - // Préference utilisateur - $this->getPreference($entity); - // On récupère soit les blogs du group en cours soit l'ensemble des blogs de l'utilisateur - if($usage=="group") { - $blogs=$em->getRepository("CadolesPortalBundle:Blog")->getBlogsGroup($this->getUser(),$group); + if($this->usage=="group") { + $blogs=$this->em->getRepository("CadolesPortalBundle:Blog")->getBlogsGroup($this->getUser(),$this->group); if($blogs) $firstblog=$blogs[0]->getId(); } else { - $em->getRepository("CadolesPortalBundle:Blog")->getBlogsUser($this->getUser(),$blogsuser,$blogsadmin,$blogsshared); + $this->em->getRepository("CadolesPortalBundle:Blog")->getBlogsUser($this->getUser(),$blogsuser,$blogsadmin,$blogsshared); $blogs=array_merge($blogsuser,$blogsadmin->toArray(),$blogsshared); $firstblog="all"; } // On récupère les nbarticle de ses blogs - $em->getRepository("CadolesPortalBundle:Blogarticle")->getBlogsArticles($blogs,0,$nbarticle,$count,$blogarticles); + $this->em->getRepository("CadolesPortalBundle:Blogarticle")->getBlogsArticles($blogs,0,$nbarticle,$count,$blogarticles); - // Render - return $this->render($this->labelentity.':viewblog.html.twig', [ - 'entity' => $entity, - 'canadd' => $canupdate, - 'canupdate' => $canupdate, + return $this->getRender('viewblog.html.twig', [ + 'canadd' => $this->canadd, 'blogarticles' => $blogarticles, 'nbarticle' => $nbarticle, - 'access' => $access, 'firstblog' => $firstblog, - 'usage' => $usage, - 'look' => $look, - 'mini' => ($look=="list"&&$entity->getId()!=$selwidget), + 'usage' => $this->usage, ]); } public function viewprojectAction(Request $request,$id,$access="config") { - $usage=$request->query->get('usage'); - $group=$request->query->get('group'); - $look=$request->query->get('look'); - $selwidget=$request->query->get('selwidget'); - - $em = $this->getDoctrine()->getManager(); - $entity = $em->getRepository($this->labelentity)->find($id); - if (!$entity) throw $this->createNotFoundException('Unable to find entity.'); - - // Permissions - if($access=="config") { - $canupdate = true; - } - else { - // On s'assure que l'utilisateur à la permission de voir - $page=$entity->getPage(); - $em->getRepository("CadolesPortalBundle:Page")->getPermission($this->getUser(),$page,$cansee,$canupdate); - if(!$cansee) throw $this->createNotFoundException('Permission denied'); - } + // Récupération de la requete + $this->setRequest($request,$id,$access); // Parametres $nbarticle=10; - foreach($entity->getParameter()["fields"] as $parameter) { + foreach($this->entity->getParameter()["fields"] as $parameter) { switch($parameter["id"]) { case "nbarticle": $nbarticle=$parameter["value"]; @@ -1521,76 +1330,56 @@ class PagewidgetController extends Controller } } - // Préference utilisateur - $this->getPreference($entity); - // On récupère soit les projects du group en cours soit l'ensemble des projects de l'utilisateur $user=$this->getUser(); - if($usage=="group") { - $projects=$em->getRepository("CadolesPortalBundle:Project")->getProjectsGroup($this->getUser(),$group); + if($this->usage=="group") { + $projects=$this->em->getRepository("CadolesPortalBundle:Project")->getProjectsGroup($this->getUser(),$this->group); if($projects) $firstproject=$projects[0]->getId(); } else { - $em->getRepository("CadolesPortalBundle:Project")->getProjectsUser($user,$projectsuser,$projectsadmin,$projectsshared); + $this->em->getRepository("CadolesPortalBundle:Project")->getProjectsUser($user,$projectsuser,$projectsadmin,$projectsshared); $projects=array_merge($projectsuser,$projectsadmin->toArray(),$projectsshared); $firstproject="all"; } - + // On récupère les nbarticle de ses projects - $em->getRepository("CadolesPortalBundle:Projecttask")->getProjectsTasks($projects,0,$nbarticle,$count,$projecttasks); + $this->em->getRepository("CadolesPortalBundle:Projecttask")->getProjectsTasks($projects,0,$nbarticle,$count,$projecttasks); foreach($projecttasks as $key => $projecttask) { if($projecttask->getPercentage()==100) unset($projecttasks[$key]); } - if($usage!="group") { + if($this->usage!="group") { foreach($projecttasks as $key => $projecttask) { if(!$user) unset($projecttasks[$key]); else { - if($projecttask->getUser() && $projecttask->getUser()!=$user) unset($projecttasks[$key]); - elseif($projecttask->getOwner() && $projecttask->getOwner()!=$user) unset($projecttasks[$key]); + if($projecttask->getUser() && $projecttask->getUser()!=$user) + unset($projecttasks[$key]); + elseif(!$projecttask->getUser() && $projecttask->getOwner() && $projecttask->getOwner()!=$user) + unset($projecttasks[$key]); + } } } // Render - return $this->render($this->labelentity.':viewproject.html.twig', [ - 'entity' => $entity, - 'canadd' => $canupdate, - 'canupdate' => $canupdate, + return $this->getRender('viewproject.html.twig', [ + 'canadd' => $this->canupdate, 'projecttasks' => $projecttasks, 'nbarticle' => $nbarticle, - 'access' => $access, 'firstproject' => $firstproject, - 'usage' => $usage, - 'look' => $look, - 'mini' => ($look=="list"&&$entity->getId()!=$selwidget), + 'usage' => $this->usage, ]); } public function viewseparatorAction(Request $request,$id,$access="config") { - $look=$request->query->get('look'); - $selwidget=$request->query->get('selwidget'); - - $em = $this->getDoctrine()->getManager(); - $entity = $em->getRepository($this->labelentity)->find($id); - if (!$entity) throw $this->createNotFoundException('Unable to find entity.'); - - // Permissions - if($access=="config") { - $canupdate = true; - } - else { - // On s'assure que l'utilisateur à la permission de voir - $page=$entity->getPage(); - $em->getRepository("CadolesPortalBundle:Page")->getPermission($this->getUser(),$page,$cansee,$canupdate); - if(!$cansee) throw $this->createNotFoundException('Permission denied'); - } + // Récupération de la requete + $this->setRequest($request,$id,$access); // Parametres $seetitle=false; $seeicon=false; - foreach($entity->getParameter()["fields"] as $parameter) { + foreach($this->entity->getParameter()["fields"] as $parameter) { switch($parameter["id"]) { case "seetitle": $seetitle=boolval($parameter["value"]); @@ -1601,44 +1390,21 @@ class PagewidgetController extends Controller } } - // Préference utilisateur - $this->getPreference($entity); - // Render - return $this->render($this->labelentity.':viewseparator.html.twig', [ - 'entity' => $entity, - 'canadd' => $canupdate, - 'canupdate' => $canupdate, + return $this->getRender('viewseparator.html.twig', [ + 'canadd' => $this->canupdate, 'seetitle' => $seetitle, 'seeicon' => $seeicon, - 'access' => $access, - 'look' => $look, - 'mini' => ($look=="list"&&$entity->getId()!=$selwidget), ]); } public function viewclockAction(Request $request,$id,$access="config") { - $look=$request->query->get('look'); - $selwidget=$request->query->get('selwidget'); - - $em = $this->getDoctrine()->getManager(); - $entity = $em->getRepository($this->labelentity)->find($id); - if (!$entity) throw $this->createNotFoundException('Unable to find entity.'); - - // Permissions - if($access=="config") { - $canupdate = true; - } - else { - // On s'assure que l'utilisateur à la permission de voir - $page=$entity->getPage(); - $em->getRepository("CadolesPortalBundle:Page")->getPermission($this->getUser(),$page,$cansee,$canupdate); - if(!$cansee) throw $this->createNotFoundException('Permission denied'); - } + // Récupération de la requete + $this->setRequest($request,$id,$access); // Parametres $clock="0"; - foreach($entity->getParameter()["fields"] as $parameter) { + foreach($this->entity->getParameter()["fields"] as $parameter) { switch($parameter["id"]) { case "clock": $clock=$parameter["value"]; @@ -1646,79 +1412,33 @@ class PagewidgetController extends Controller } } - // Préference utilisateur - $this->getPreference($entity); - // Render - return $this->render($this->labelentity.':viewframe.html.twig', [ - 'entity' => $entity, - 'canadd' => $canupdate, - 'canupdate' => $canupdate, + return $this->getRender('viewframe.html.twig', [ + 'canadd' => $this->canupdate, 'onheader' => true, 'tool' => ($clock==0?"cadoles_portal_user_tool_clockanalogique":"cadoles_portal_user_tool_clocknumerique"), - 'access' => $access, - 'look' => $look, - 'mini' => ($look=="list"&&$entity->getId()!=$selwidget), ]); } public function viewcalculatorAction(Request $request,$id,$access="config") { - $look=$request->query->get('look'); - $selwidget=$request->query->get('selwidget'); - - $em = $this->getDoctrine()->getManager(); - $entity = $em->getRepository($this->labelentity)->find($id); - if (!$entity) throw $this->createNotFoundException('Unable to find entity.'); - - // Permissions - if($access=="config") { - $canupdate = true; - } - else { - // On s'assure que l'utilisateur à la permission de voir - $page=$entity->getPage(); - $em->getRepository("CadolesPortalBundle:Page")->getPermission($this->getUser(),$page,$cansee,$canupdate); - if(!$cansee) throw $this->createNotFoundException('Permission denied'); - } - - // Préference utilisateur - $this->getPreference($entity); + // Récupération de la requete + $this->setRequest($request,$id,$access); // Render - return $this->render($this->labelentity.':viewframe.html.twig', [ - 'entity' => $entity, - 'canadd' => $canupdate, - 'canupdate' => $canupdate, + return $this->getRender('viewframe.html.twig', [ + 'canadd' => $this->canupdate, 'onheader' => true, - 'tool' => "cadoles_portal_user_tool_calculator", - 'access' => $access, - 'look' => $look, - 'mini' => ($look=="list"&&$entity->getId()!=$selwidget), + 'tool' => "cadoles_portal_user_tool_calculator", ]); } public function viewappexternalAction(Request $request,$id,$access="config") { - $look=$request->query->get('look'); - $selwidget=$request->query->get('selwidget'); - - $em = $this->getDoctrine()->getManager(); - $entity = $em->getRepository($this->labelentity)->find($id); - if (!$entity) throw $this->createNotFoundException('Unable to find entity.'); - - // Permissions - if($access=="config") { - $canupdate = true; - } - else { - // On s'assure que l'utilisateur à la permission de voir - $page=$entity->getPage(); - $em->getRepository("CadolesPortalBundle:Page")->getPermission($this->getUser(),$page,$cansee,$canupdate); - if(!$cansee) throw $this->createNotFoundException('Permission denied'); - } + // Récupération de la requete + $this->setRequest($request,$id,$access); // Récupération des paramétres du widget $idappexternal=null; - foreach($entity->getParameter()["fields"] as $parameter) { + foreach($this->entity->getParameter()["fields"] as $parameter) { switch($parameter["id"]) { case "appexternal": $idappexternal=$parameter["value"]; @@ -1729,15 +1449,12 @@ class PagewidgetController extends Controller } } - // Préference utilisateur - $this->getPreference($entity); - $user=$this->getUser(); $items=[]; $itemcategorys=[]; if($user) { - if($idappexternal) $appextenals=$em->getRepository("CadolesPortalBundle:Appexternal")->findBy(["id"=>$idappexternal]); - else $appextenals=$em->getRepository("CadolesPortalBundle:Appexternal")->findAll(); + if($idappexternal) $appextenals=$this->em->getRepository("CadolesPortalBundle:Appexternal")->findBy(["id"=>$idappexternal]); + else $appextenals=$this->em->getRepository("CadolesPortalBundle:Appexternal")->findAll(); foreach($appextenals as $appexternal) { switch($appexternal->getName()) { case "Limesurvey": @@ -1790,161 +1507,86 @@ class PagewidgetController extends Controller array_multisort($title, SORT_ASC, $items); // Render - return $this->render($this->labelentity.':viewappexternal.html.twig', [ - 'entity' => $entity, + return $this->getRender('viewappexternal.html.twig', [ 'canadd' => ($user), - 'canupdate' => $canupdate, 'modedesktop' => $modedesktop, 'items' => $items, - 'itemcategorys' => $itemcategorys, - 'access' => $access, - 'look' => $look, - 'mini' => ($look=="list"&&$entity->getId()!=$selwidget), + 'itemcategorys' => $itemcategorys, ]); } public function viewinfoAction(Request $request,$id,$access="config") { - $usage=$request->query->get('usage'); - $group=$request->query->get('group'); - $look=$request->query->get('look'); - $selwidget=$request->query->get('selwidget'); - $user=$this->getUser(); - - $em = $this->getDoctrine()->getManager(); - $entity = $em->getRepository($this->labelentity)->find($id); - if (!$entity) throw $this->createNotFoundException('Unable to find entity.'); - $page=$entity->getPage(); - - // Permissions - if($access=="config") { - $canupdate = true; - } - else { - // On s'assure que l'utilisateur à la permission de voir - $em->getRepository("CadolesPortalBundle:Page")->getPermission($this->getUser(),$page,$cansee,$canupdate); - if(!$cansee) throw $this->createNotFoundException('Permission denied'); - } - - // Préference utilisateur - $this->getPreference($entity); + // Récupération de la requete + $this->setRequest($request,$id,$access); $icon=null; $title=null; $description=null; $members=[]; - if($usage=="group") { - $group=$em->getRepository("CadolesCoreBundle:Group")->find($group); - if($group) { - $title=$group->getLabel(); - $id=$group->getId(); - if($group->getDescription()) - $description="Description
".$group->getDescription(); - if($group->getIcon()) - $icon="/".$group->getIcon()->getLabel(); + if($this->usage=="group") { + $groupentity=$this->em->getRepository("CadolesCoreBundle:Group")->find($this->group); + if($groupentity) { + $title=$groupentity->getLabel(); + $id=$groupentity->getId(); + if($groupentity->getDescription()) + $description="Description
".$groupentity->getDescription(); + if($groupentity->getIcon()) + $icon="/".$groupentity->getIcon()->getLabel(); - foreach($group->getUsers() as $usergroup) { - + foreach($groupentity->getUsers() as $usergroup) { array_push($members,$usergroup); } } } else { - $title=$entity->getPage()->getName(); - $proprio=$entity->getPage()->getUser(); + $title=$this->entity->getPage()->getName(); + $proprio=$this->entity->getPage()->getUser(); $id=0; if($proprio) { $description="Propriétaire de la page
".$proprio->getLastname()." ".$proprio->getLastname(); $icon="/uploads/avatar/".$proprio->getAvatar(); } } + // Render - return $this->render($this->labelentity.':viewinfo.html.twig', [ - 'entity' => $entity, - 'canadd' => $canupdate, - 'canupdate' => $canupdate, - 'usage' => $usage, + return $this->getRender('viewinfo.html.twig', [ + 'canadd' => $this->canupdate, + 'usage' => $this->usage, 'icon' => $icon, 'title' => $title, 'description' => $description, 'members' => $members, 'id' => $id, - 'idpage' => $page->getId(), - 'look' => $look, - 'mini' => ($look=="list"&&$entity->getId()!=$selwidget), + 'idpage' => $this->entity->getPage()->getId(), ]); } public function viewchatAction(Request $request,$id,$access="config") { - $usage=$request->query->get('usage'); - $group=$request->query->get('group'); - $look=$request->query->get('look'); - $selwidget=$request->query->get('selwidget'); + // Récupération de la requete + $this->setRequest($request,$id,$access); - $em = $this->getDoctrine()->getManager(); - $entity = $em->getRepository($this->labelentity)->find($id); - if (!$entity) throw $this->createNotFoundException('Unable to find entity.'); - - // Permissions - if($access=="config") { - $canupdate = true; - } - else { - // On s'assure que l'utilisateur à la permission de voir - $page=$entity->getPage(); - $em->getRepository("CadolesPortalBundle:Page")->getPermission($this->getUser(),$page,$cansee,$canupdate); - if(!$cansee) throw $this->createNotFoundException('Permission denied'); - } - - // Préference utilisateur - $this->getPreference($entity); - - if($usage!="group"||!$group) { - $group=$em->getRepository("CadolesCoreBundle:Group")->findOneBy(["fgall"=>true])->getId(); + $group=$this->group; + if($this->usage!="group"||!$group) { + $group=$this->em->getRepository("CadolesCoreBundle:Group")->findOneBy(["fgall"=>true])->getId(); } // Render - return $this->render($this->labelentity.':viewchat.html.twig', [ - 'entity' => $entity, - 'canadd' => $canupdate, - 'canupdate' => $canupdate, + return $this->getRender('viewchat.html.twig', [ + 'canadd' => $this->canupdate, 'onheader' => false, 'tool' => "cadoles_websocket_chat", - 'access' => $access, - 'usage' => $usage, + 'usage' => $this->usage, 'group' => $group, - 'look' => $look, - 'mini' => ($look=="list"&&$entity->getId()!=$selwidget), ]); } public function viewgroupAction(Request $request,$id,$access="config") { - $usage=$request->query->get('usage'); - $group=$request->query->get('group'); - $look=$request->query->get('look'); - $selwidget=$request->query->get('selwidget'); + // Récupération de la requete + $this->setRequest($request,$id,$access); $user=$this->getUser(); - - $em = $this->getDoctrine()->getManager(); - $entity = $em->getRepository($this->labelentity)->find($id); - if (!$entity) throw $this->createNotFoundException('Unable to find entity.'); - - // Permissions - if($access=="config") { - $canupdate = true; - } - else { - // On s'assure que l'utilisateur à la permission de voir - $page=$entity->getPage(); - $em->getRepository("CadolesPortalBundle:Page")->getPermission($this->getUser(),$page,$cansee,$canupdate); - if(!$cansee) throw $this->createNotFoundException('Permission denied'); - } - - // Préference utilisateur - $this->getPreference($entity); - $mygroups=[]; $this->getDoctrine()->getRepository("CadolesPortalBundle:Page")->getPagesUser($user,null,$default,$pagesuser,$pagesadmin,$groupsshared); if(is_array($groupsshared)) { @@ -1962,47 +1604,21 @@ class PagewidgetController extends Controller } // Render - return $this->render($this->labelentity.':viewgroup.html.twig', [ - 'entity' => $entity, + return $this->getRender('viewgroup.html.twig', [ 'canadd' => ($user), - 'canupdate' => $canupdate, - 'usage' => $usage, + 'usage' => $this->usage, 'groups' => $mygroups, - 'look' => $look, - 'mini' => ($look=="list"&&$entity->getId()!=$selwidget), ]); } public function viewgroupmessageAction(Request $request,$id,$access="config") { - $usage=$request->query->get('usage'); - $group=$request->query->get('group'); - $look=$request->query->get('look'); - $selwidget=$request->query->get('selwidget'); - - $user=$this->getUser(); - - $em = $this->getDoctrine()->getManager(); - $entity = $em->getRepository($this->labelentity)->find($id); - if (!$entity) throw $this->createNotFoundException('Unable to find entity.'); - - // Permissions - if($access=="config") { - $canupdate = true; - } - else { - // On s'assure que l'utilisateur à la permission de voir - $page=$entity->getPage(); - $em->getRepository("CadolesPortalBundle:Page")->getPermission($this->getUser(),$page,$cansee,$canupdate); - if(!$cansee) throw $this->createNotFoundException('Permission denied'); - } - - // Préference utilisateur - $this->getPreference($entity); - + // Récupération de la requete + $this->setRequest($request,$id,$access); + // Récupération des paramétres du widget $modelist=1; $nbarticle=5; - foreach($entity->getParameter()["fields"] as $parameter) { + foreach($this->entity->getParameter()["fields"] as $parameter) { switch($parameter["id"]) { case "modelist": $modelist=$parameter["value"]; @@ -2013,8 +1629,8 @@ class PagewidgetController extends Controller } } - $mygroups=[]; $mymsg= []; + $user=$this->getUser(); $this->getDoctrine()->getRepository("CadolesPortalBundle:Page")->getPagesUser($user,null,$default,$pagesuser,$pagesadmin,$groupsshared); if(is_array($groupsshared)) { foreach($groupsshared as $groupshared) { @@ -2050,48 +1666,23 @@ class PagewidgetController extends Controller // Render - return $this->render($this->labelentity.':viewgroupmessage.html.twig', [ - 'entity' => $entity, + return $this->getRender('viewgroupmessage.html.twig', [ 'canadd' => ($user), - 'canupdate' => $canupdate, - 'usage' => $usage, + 'usage' => $this->usage, 'modelist' => $modelist, 'messages' => $mymsg, 'nbarticle' => $nbarticle, - 'look' => $look, - 'mini' => ($look=="list"&&$entity->getId()!=$selwidget), ]); } public function viewOnlydocAction(Request $request,$id,$access="config") { - $usage=$request->query->get('usage'); - $group=$request->query->get('group'); - $look=$request->query->get('look'); - $selwidget=$request->query->get('selwidget'); - - $user=$this->getUser(); - - $em = $this->getDoctrine()->getManager(); - $entity = $em->getRepository($this->labelentity)->find($id); - if (!$entity) throw $this->createNotFoundException('Unable to find entity.'); - - // Permissions - if($access=="config") { - $canupdate = true; - $cansee = true; - } - else { - // On s'assure que l'utilisateur à la permission de voir - $page=$entity->getPage(); - $em->getRepository("CadolesPortalBundle:Page")->getPermission($this->getUser(),$page,$cansee,$canupdate); - if(!$cansee) throw $this->createNotFoundException('Permission denied'); - } - + // Récupération de la requete + $this->setRequest($request,$id,$access); // Récupération des paramétres du widget $apponly=0; $view="small"; - foreach($entity->getParameter()["fields"] as $parameter) { + foreach($this->entity->getParameter()["fields"] as $parameter) { switch($parameter["id"]) { case "apponly": $apponly=$parameter["value"]; @@ -2101,19 +1692,11 @@ class PagewidgetController extends Controller break; } } - - // Préference utilisateur - $this->getPreference($entity); - - return $this->render($this->labelentity.':viewonlydoc.html.twig', [ - 'entity' => $entity, - 'canadd' => $canupdate, - 'canupdate' => $canupdate, - 'access' => $access, + + return $this->getRender('viewonlydoc.html.twig', [ + 'canadd' => $this->canupdate, 'directory' => $id, 'view' => $view, - 'look' => $look, - 'mini' => ($look=="list"&&$entity->getId()!=$selwidget), ]); } } diff --git a/src/ninegate-1.0/src/Cadoles/PortalBundle/Controller/ProjectController.php b/src/ninegate-1.0/src/Cadoles/PortalBundle/Controller/ProjectController.php index 2764b961..eefd0483 100644 --- a/src/ninegate-1.0/src/Cadoles/PortalBundle/Controller/ProjectController.php +++ b/src/ninegate-1.0/src/Cadoles/PortalBundle/Controller/ProjectController.php @@ -410,7 +410,6 @@ class ProjectController extends Controller } if(!$cansee) throw $this->createNotFoundException('Permission denied'); - $canupdate=$this->get('session')->get('cancreateproject'); } diff --git a/src/ninegate-1.0/src/Cadoles/PortalBundle/Controller/ProjecttaskController.php b/src/ninegate-1.0/src/Cadoles/PortalBundle/Controller/ProjecttaskController.php index 5e629360..7f8142e4 100644 --- a/src/ninegate-1.0/src/Cadoles/PortalBundle/Controller/ProjecttaskController.php +++ b/src/ninegate-1.0/src/Cadoles/PortalBundle/Controller/ProjecttaskController.php @@ -116,6 +116,7 @@ class ProjecttaskController extends Controller $user=$this->getUser(); $em->getRepository("CadolesPortalBundle:Project")->getPermission($user,$entity->getProject(),$cansee,$canupdate,$canadd); if($user && ((is_null($entity->getUser()) && $user==$entity->getOwner()) || $user==$entity->getUser())) $canadd=true; + else $canadd = $em->getRepository("CadolesPortalBundle:Project")->getInvalideur($user,$entity->getProject()); if(!$canadd) throw $this->createNotFoundException('Permission denied'); } @@ -180,6 +181,7 @@ class ProjecttaskController extends Controller $user=$this->getUser(); $em->getRepository("CadolesPortalBundle:Project")->getPermission($user,$entity->getProject(),$cansee,$canupdate,$canadd); if($user && ((is_null($entity->getUser()) && $user==$entity->getOwner()) || $user==$entity->getUser())) $canadd=true; + else $canadd = $em->getRepository("CadolesPortalBundle:Project")->getInvalideur($user,$entity->getProject()); if(!$canadd) throw $this->createNotFoundException('Permission denied'); } @@ -233,6 +235,7 @@ class ProjecttaskController extends Controller } else { $em->getRepository("CadolesPortalBundle:Project")->getPermission($user,$entity->getProject(),$cansee,$canupdate,$canadd); + $canadd = $em->getRepository("CadolesPortalBundle:Project")->getInvalideur($user,$entity->getProject()); } if(!$cansee) throw $this->createNotFoundException('Permission denied'); @@ -266,17 +269,6 @@ class ProjecttaskController extends Controller $tmp["thumb"]=""; if($tmp["extension"]=="pdf") { $tmp["thumb"]="/".$this->getParameter('alias')."/bundles/cadolescore/images/files/".$tmp["extension"].".png"; - - /* ne plus afficher l'apercu du pdf - if($fs->exists($directory."/thumbmini/".$tmp["name"])) { - $data = file_get_contents($directory."/thumbmini/".$tmp["name"]); - $tmp["thumb"]="data:image/jpg;base64," . base64_encode($data); - } - elseif($fs->exists($directory."/thumb/".$tmp["name"])) { - $data = file_get_contents($directory."/thumb/".$tmp["name"]); - $tmp["thumb"]="data:image/jpg;base64," . base64_encode($data); - } - */ } elseif($fs->exists($directory."/thumbmini/".$tmp["name"])) { $data = file_get_contents($directory."/thumbmini/".$tmp["name"]); @@ -353,7 +345,7 @@ class ProjecttaskController extends Controller $project=$em->getRepository("CadolesPortalBundle:Project")->find($projectid); if($project) { $user=$this->getUser(); - $em->getRepository("CadolesPortalBundle:Project")->getPermission($user,$project,$cansee,$canupdate,$canadd); + $canadd = $em->getRepository("CadolesPortalBundle:Project")->getInvalideur($user,$project); // Si permission alors il peut affecter tt les personnes du groupe if($canadd||$access=="config") { @@ -405,9 +397,8 @@ class ProjecttaskController extends Controller // On s'assure que l'utilisateur à la permission de modifier if($access=="user") { $user=$this->getUser(); - $em->getRepository("CadolesPortalBundle:Project")->getPermission($user,$entity->getProject(),$cansee,$canupdate,$canadd); if($user && ((is_null($entity->getUser()) && $user==$entity->getOwner()) || $user==$entity->getUser())) $canadd=true; - + else $canadd = $em->getRepository("CadolesPortalBundle:Project")->getInvalideur($user,$entity->getProject()); if(!$canadd) throw $this->createNotFoundException('Permission denied'); } diff --git a/src/ninegate-1.0/src/Cadoles/PortalBundle/Controller/SlideController.php b/src/ninegate-1.0/src/Cadoles/PortalBundle/Controller/SlideController.php index 55066a3f..9d5866e6 100644 --- a/src/ninegate-1.0/src/Cadoles/PortalBundle/Controller/SlideController.php +++ b/src/ninegate-1.0/src/Cadoles/PortalBundle/Controller/SlideController.php @@ -37,8 +37,8 @@ class SlideController extends Controller } else { $groupentity=$this->getDoctrine()->getRepository("CadolesCoreBundle:Group")->find($group); - $fgmanager=$this->getDoctrine()->getRepository("CadolesCoreBundle:UserGroup")->findoneby(["user"=>$this->getUser(),"group"=>$groupentity,"fgmanager"=>true]); - if(!$fgmanager) throw $this->createNotFoundException('Permission denied'); + $usergroup=$this->getDoctrine()->getRepository("CadolesCoreBundle:UserGroup")->findoneby(["user"=>$this->getUser(),"group"=>$groupentity]); + if(!$usergroup||$usergroup->getRolegroup()<50) throw $this->createNotFoundException('Permission denied'); } } @@ -81,8 +81,8 @@ class SlideController extends Controller } else { $groupentity=$this->getDoctrine()->getRepository("CadolesCoreBundle:Group")->find($group); - $fgmanager=$this->getDoctrine()->getRepository("CadolesCoreBundle:UserGroup")->findoneby(["user"=>$this->getUser(),"group"=>$groupentity,"fgmanager"=>true]); - if(!$fgmanager) throw $this->createNotFoundException('Permission denied'); + $usergroup=$this->getDoctrine()->getRepository("CadolesCoreBundle:UserGroup")->findoneby(["user"=>$this->getUser(),"group"=>$groupentity]); + if(!$usergroup||$usergroup->getRolegroup()<50) throw $this->createNotFoundException('Permission denied'); } } @@ -142,8 +142,8 @@ class SlideController extends Controller } else { $groupentity=$this->getDoctrine()->getRepository("CadolesCoreBundle:Group")->find($group); - $fgmanager=$this->getDoctrine()->getRepository("CadolesCoreBundle:UserGroup")->findoneby(["user"=>$this->getUser(),"group"=>$groupentity,"fgmanager"=>true]); - if(!$fgmanager) throw $this->createNotFoundException('Permission denied'); + $usergroup=$this->getDoctrine()->getRepository("CadolesCoreBundle:UserGroup")->findoneby(["user"=>$this->getUser(),"group"=>$groupentity]); + if(!$usergroup||$usergroup->getRolegroup()<50) throw $this->createNotFoundException('Permission denied'); } } @@ -206,8 +206,8 @@ class SlideController extends Controller } else { $groupentity=$this->getDoctrine()->getRepository("CadolesCoreBundle:Group")->find($group); - $fgmanager=$this->getDoctrine()->getRepository("CadolesCoreBundle:UserGroup")->findoneby(["user"=>$this->getUser(),"group"=>$groupentity,"fgmanager"=>true]); - if(!$fgmanager) throw $this->createNotFoundException('Permission denied'); + $usergroup=$this->getDoctrine()->getRepository("CadolesCoreBundle:UserGroup")->findoneby(["user"=>$this->getUser(),"group"=>$groupentity]); + if(!$usergroup||$usergroup->getRolegroup()<50) throw $this->createNotFoundException('Permission denied'); } } diff --git a/src/ninegate-1.0/src/Cadoles/PortalBundle/Entity/Calendar.php b/src/ninegate-1.0/src/Cadoles/PortalBundle/Entity/Calendar.php index 848b5949..75c814b9 100644 --- a/src/ninegate-1.0/src/Cadoles/PortalBundle/Entity/Calendar.php +++ b/src/ninegate-1.0/src/Cadoles/PortalBundle/Entity/Calendar.php @@ -132,6 +132,17 @@ class Calendar return $this; } + private $canadd; + public function getCanadd() + { + return $this->canadd; + } + public function setCanadd($canadd) + { + $this->canadd = $canadd; + return $this; + } + /* Password User */ public function setPassword($password) { diff --git a/src/ninegate-1.0/src/Cadoles/PortalBundle/Form/BlogShareType.php b/src/ninegate-1.0/src/Cadoles/PortalBundle/Form/BlogShareType.php index 4260b41c..a1ac6a54 100644 --- a/src/ninegate-1.0/src/Cadoles/PortalBundle/Form/BlogShareType.php +++ b/src/ninegate-1.0/src/Cadoles/PortalBundle/Form/BlogShareType.php @@ -35,8 +35,9 @@ class BlogShareType extends AbstractType ->where('g.fgcanshare=:fgcanshare') ->andWhere('g=ug.group') ->andWhere('ug.user=:user') - ->andWhere('ug.fgmanager=:fgcanshare') + ->andWhere('ug.rolegroup>=:role') ->setParameter('fgcanshare',true) + ->setParameter('role',90) ->setParameter('user',$user); }, 'choice_label' => 'label', diff --git a/src/ninegate-1.0/src/Cadoles/PortalBundle/Form/BlogarticleType.php b/src/ninegate-1.0/src/Cadoles/PortalBundle/Form/BlogarticleType.php index 74a17442..52bb8dca 100644 --- a/src/ninegate-1.0/src/Cadoles/PortalBundle/Form/BlogarticleType.php +++ b/src/ninegate-1.0/src/Cadoles/PortalBundle/Form/BlogarticleType.php @@ -75,13 +75,13 @@ class BlogarticleType extends AbstractType ->orwhere(':user MEMBER OF blog.writers') ->from('CadolesCoreBundle:UserGroup','usergroup') - ->orwhere('usergroup.group MEMBER OF blog.groups AND usergroup.user=:user AND usergroup.fgmanager=:flag') + ->orwhere('usergroup.group MEMBER OF blog.groups AND usergroup.user=:user AND usergroup.rolegroup>=:role') ->from('CadolesCoreBundle:User','user') ->andwhere("user=:user") ->setparameter('user',$user) - ->setparameter('flag',true); + ->setparameter('role',50); }, ]); diff --git a/src/ninegate-1.0/src/Cadoles/PortalBundle/Form/CalendarShareType.php b/src/ninegate-1.0/src/Cadoles/PortalBundle/Form/CalendarShareType.php index 63eae56f..f4aecb59 100644 --- a/src/ninegate-1.0/src/Cadoles/PortalBundle/Form/CalendarShareType.php +++ b/src/ninegate-1.0/src/Cadoles/PortalBundle/Form/CalendarShareType.php @@ -35,8 +35,9 @@ class CalendarShareType extends AbstractType ->where('g.fgcanshare=:fgcanshare') ->andWhere('g=ug.group') ->andWhere('ug.user=:user') - ->andWhere('ug.fgmanager=:fgcanshare') + ->andWhere('ug.rolegroup>=:role') ->setParameter('fgcanshare',true) + ->setParameter('role',90) ->setParameter('user',$user); }, 'choice_label' => 'label', diff --git a/src/ninegate-1.0/src/Cadoles/PortalBundle/Form/PageShareType.php b/src/ninegate-1.0/src/Cadoles/PortalBundle/Form/PageShareType.php index 25487ee4..748a2970 100644 --- a/src/ninegate-1.0/src/Cadoles/PortalBundle/Form/PageShareType.php +++ b/src/ninegate-1.0/src/Cadoles/PortalBundle/Form/PageShareType.php @@ -35,8 +35,9 @@ class PageShareType extends AbstractType ->where('g.fgcanshare=:fgcanshare') ->andWhere('g=ug.group') ->andWhere('ug.user=:user') - ->andWhere('ug.fgmanager=:fgcanshare') + ->andWhere('ug.rolegroup>=:role') ->setParameter('fgcanshare',true) + ->setParameter('role',90) ->setParameter('user',$user); }, 'choice_label' => 'label', diff --git a/src/ninegate-1.0/src/Cadoles/PortalBundle/Form/PageSubmitType.php b/src/ninegate-1.0/src/Cadoles/PortalBundle/Form/PageSubmitType.php index 732e453d..6abb4fb9 100644 --- a/src/ninegate-1.0/src/Cadoles/PortalBundle/Form/PageSubmitType.php +++ b/src/ninegate-1.0/src/Cadoles/PortalBundle/Form/PageSubmitType.php @@ -100,8 +100,9 @@ class PageSubmitType extends AbstractType ->where('g.fgcanshare=:fgcanshare') ->andWhere('g=ug.group') ->andWhere('ug.user=:user') - ->andWhere('ug.fgmanager=:fgcanshare') + ->andWhere('ug.rolegroup>=:role') ->setParameter('fgcanshare',true) + ->setParameter('role',90) ->setParameter('user',$user); }, ]) diff --git a/src/ninegate-1.0/src/Cadoles/PortalBundle/Form/ProjectShareType.php b/src/ninegate-1.0/src/Cadoles/PortalBundle/Form/ProjectShareType.php index c9a29b9d..e502565e 100644 --- a/src/ninegate-1.0/src/Cadoles/PortalBundle/Form/ProjectShareType.php +++ b/src/ninegate-1.0/src/Cadoles/PortalBundle/Form/ProjectShareType.php @@ -35,8 +35,9 @@ class ProjectShareType extends AbstractType ->where('g.fgcanshare=:fgcanshare') ->andWhere('g=ug.group') ->andWhere('ug.user=:user') - ->andWhere('ug.fgmanager=:fgcanshare') + ->andWhere('ug.rolegroup>=:role') ->setParameter('fgcanshare',true) + ->setParameter('role',90) ->setParameter('user',$user); }, 'choice_label' => 'label', diff --git a/src/ninegate-1.0/src/Cadoles/PortalBundle/Repository/BlogRepository.php b/src/ninegate-1.0/src/Cadoles/PortalBundle/Repository/BlogRepository.php index 4473b47a..5fa8e55a 100644 --- a/src/ninegate-1.0/src/Cadoles/PortalBundle/Repository/BlogRepository.php +++ b/src/ninegate-1.0/src/Cadoles/PortalBundle/Repository/BlogRepository.php @@ -129,7 +129,7 @@ class BlogRepository extends EntityRepository // Permission sur les blogs foreach($blogsadmin as $blogadmin) { - $blogadmin->setCanupdate(false); + $blogadmin->setCanupdate($this->getInmanager($user,$blogadmin)); $blogadmin->setCanadd($this->getInwriter($user,$blogadmin)); } } @@ -150,28 +150,6 @@ class BlogRepository extends EntityRepository $roles=($user?$user->getRoles():["ROLE_ANONYME"]); $groups=($user?$user->getGroups():[]); - // La blog est-elle dans les blogs associées à un partage de group ? - /* - $inblogsshared=$this->createQueryBuilder('blog') - ->from('CadolesCoreBundle:Group','g') - ->from('CadolesCoreBundle:UserGroup','ug') - ->from('CadolesCoreBundle:UserGroup','proprio') - ->where('g.fgcanshare=:fgcanshare') - ->andWhere('blog.id = :id') - ->andWhere('g=ug.group') - ->andWhere('ug.user=:user') - ->andWhere('g MEMBER OF blog.groups') - ->andWhere('blog.user != :user') - ->andWhere('blog.user is not null') - ->andWhere('proprio.user=blog.user') - ->andWhere('proprio.group=g') - ->setParameter("id",$blog->getId()) - ->setParameter('fgcanshare',true) - ->setParameter('user',$user) - ->getQuery()->getResult(); - if($inblogsshared) $cansee=true; - */ - // La blog est-elle dans les blogs associées au role de l'utilisateur ? foreach($roles as $role) { $qb = $this->createQueryBuilder("blog"); @@ -196,9 +174,12 @@ class BlogRepository extends EntityRepository if($inbloggroup) { $cansee=true; - // Est-il manager du groupe if($group->getGroup()->getFgcanshare()) { - if($group->getFgmanager()) $canadd=true; + // Est-il collaborateur du groupe + if($group->getRolegroup()>=50) $canadd=true; + + // Est-il gestionnaire du groupe + if($group->getRolegroup()>=90) $canupdate=true; } } } @@ -210,7 +191,7 @@ class BlogRepository extends EntityRepository } public function getInwriter($user,$blog) { - $canadd=false; + $can=false; if($user) { // Peut ecrire ceux qui sont déclaré comme écrivain @@ -229,9 +210,9 @@ class BlogRepository extends EntityRepository ->setparameter('user',$user); $inblogwriters=$qb->getQuery()->getResult(); - if($inblogwriters) $canadd=true; + if($inblogwriters) $can=true; - // Peut ecrire ceux qui sont manager du groupe auquel est rattaché le blog + // Peut ecrire ceux qui sont collaborateur du groupe auquel est rattaché le blog $qb = $this->createQueryBuilder("blog"); $qb ->andWhere("blog.id=:id") ->from('CadolesCoreBundle:User','user') @@ -240,7 +221,7 @@ class BlogRepository extends EntityRepository ->from('CadolesCoreBundle:UserGroup','usergroup') ->andwhere('usergroup.group MEMBER OF blog.groups') ->andwhere('usergroup.user=:user') - ->andwhere('usergroup.fgmanager=:flag') + ->andwhere('usergroup.rolegroup>=:role') ->from('CadolesCoreBundle:Group','groupe') ->andwhere('groupe=usergroup.group') @@ -248,13 +229,47 @@ class BlogRepository extends EntityRepository ->setParameter("id",$blog->getId()) ->setparameter('user',$user) - ->setparameter('flag',true); + ->setparameter('flag',true) + ->setparameter('role',50); + + $inblogwriters=$qb->getQuery()->getResult(); + if($inblogwriters) $can=true; + } + + return $can; + } + + + public function getInmanager($user,$blog) { + $can=false; + + if($user) { + // Peut ecrire ceux qui sont manager du groupe auquel est rattaché le calendar + $qb = $this->createQueryBuilder("blog"); + $qb ->andWhere("blog.id=:id") + ->from('CadolesCoreBundle:User','user') + ->andwhere("user=:user") + + ->from('CadolesCoreBundle:UserGroup','usergroup') + ->andwhere('usergroup.group MEMBER OF blog.groups') + ->andwhere('usergroup.user=:user') + ->andwhere('usergroup.rolegroup>=:role') + + ->from('CadolesCoreBundle:Group','groupe') + ->andwhere('groupe=usergroup.group') + ->andwhere('groupe.fgcanshare=:flag') + + ->setParameter("id",$blog->getId()) + ->setparameter('user',$user) + ->setparameter('flag',true) + ->setparameter('role',90); $inblogwriters=$qb->getQuery()->getResult(); - if($inblogwriters) $canadd=true; + + if($inblogwriters) $can=true; } - return $canadd; - } + return $can; + } } diff --git a/src/ninegate-1.0/src/Cadoles/PortalBundle/Repository/CalendarRepository.php b/src/ninegate-1.0/src/Cadoles/PortalBundle/Repository/CalendarRepository.php index 0bbe6622..1b25dc23 100644 --- a/src/ninegate-1.0/src/Cadoles/PortalBundle/Repository/CalendarRepository.php +++ b/src/ninegate-1.0/src/Cadoles/PortalBundle/Repository/CalendarRepository.php @@ -53,6 +53,7 @@ class CalendarRepository extends EntityRepository if($calendarsuser) { foreach($calendarsuser as $calendaruser) { $calendaruser->setCanupdate(true); + $calendaruser->setCanadd(true); } } @@ -109,18 +110,21 @@ class CalendarRepository extends EntityRepository // Permission sur les calendars foreach($calendarsadmin as $calendaradmin) { - $calendaradmin->setCanupdate($this->getInwriter($user,$calendaradmin)); + $calendaradmin->setCanupdate($this->getInmanager($user,$calendaradmin)); + $calendaradmin->setCanadd($this->getInwriter($user,$calendaradmin)); } } - public function getPermission($user,$calendar,&$cansee,&$canupdate) { + public function getPermission($user,$calendar,&$cansee,&$canupdate,&$canadd) { // si calendar de l'utilisateur if($calendar->getUser()==$user&&!is_null($user)) { $cansee=true; $canupdate=true; + $canadd=true; } else { $canupdate=false; + $canadd=false; $cansee=false; // Profilage @@ -153,7 +157,8 @@ class CalendarRepository extends EntityRepository // Est-il manager du groupe if($group->getGroup()->getFgcanshare()) { - if($group->getFgmanager()) $canupdate=true; + if($group->getRolegroup()>=90) $canupdate=true; + if($group->getRolegroup()>=50) $canadd=true; } } } @@ -161,7 +166,7 @@ class CalendarRepository extends EntityRepository } public function getInwriter($user,$calendar) { - $canadd=false; + $can=false; if($user) { // Peut ecrire ceux qui sont manager du groupe auquel est rattaché le calendar @@ -173,22 +178,56 @@ class CalendarRepository extends EntityRepository ->from('CadolesCoreBundle:UserGroup','usergroup') ->andwhere('usergroup.group MEMBER OF calendar.groups') ->andwhere('usergroup.user=user') - ->andwhere('usergroup.fgmanager=:flag') + ->andwhere('usergroup.rolegroup>=:role') ->from('CadolesCoreBundle:Group','groupe') ->andwhere('groupe=usergroup.group') ->andwhere('groupe.fgcanshare=:flag') ->setParameter("id",$calendar->getId()) + ->setParameter("role",50) ->setparameter('user',$user) ->setparameter('flag',true); $inblogwriters=$qb->getQuery()->getResult(); - if($inblogwriters) $canadd=true; + if($inblogwriters) $can=true; } - return $canadd; + return $can; + } + + public function getInmanager($user,$calendar) { + $can=false; + + if($user) { + // Peut ecrire ceux qui sont manager du groupe auquel est rattaché le calendar + $qb = $this->createQueryBuilder("calendar"); + $qb ->andWhere("calendar.id=:id") + ->from('CadolesCoreBundle:User','user') + ->andwhere("user=:user") + + ->from('CadolesCoreBundle:UserGroup','usergroup') + ->andwhere('usergroup.group MEMBER OF calendar.groups') + ->andwhere('usergroup.user=user') + ->andwhere('usergroup.rolegroup>=:role') + + ->from('CadolesCoreBundle:Group','groupe') + ->andwhere('groupe=usergroup.group') + ->andwhere('groupe.fgcanshare=:flag') + + ->setParameter("id",$calendar->getId()) + ->setParameter("role",90) + ->setparameter('user',$user) + ->setparameter('flag',true); + + + $inblogwriters=$qb->getQuery()->getResult(); + + if($inblogwriters) $can=true; + } + + return $can; } } diff --git a/src/ninegate-1.0/src/Cadoles/PortalBundle/Repository/CalendareventRepository.php b/src/ninegate-1.0/src/Cadoles/PortalBundle/Repository/CalendareventRepository.php index f9aa80d7..7870188d 100644 --- a/src/ninegate-1.0/src/Cadoles/PortalBundle/Repository/CalendareventRepository.php +++ b/src/ninegate-1.0/src/Cadoles/PortalBundle/Repository/CalendareventRepository.php @@ -100,10 +100,12 @@ class CalendareventRepository extends EntityRepository // On récupère soit les calendriers du group en cours soit l'ensemble des calendriers de l'utilisateur if($usage=="group") { $calendars=$em->getRepository("CadolesPortalBundle:Calendar")->getCalendarsGroup($user,$group); + if($calendars) $firstcalendar=$calendars[0]->getId(); } else { $em->getRepository("CadolesPortalBundle:Calendar")->getCalendarsUser($user,$calendarssuser,$calendarsadmin,$calendarsshared); $calendars=array_merge($calendarssuser,$calendarsadmin->toArray(),$calendarsshared); + $firstcalendar="all"; } // Début & fin @@ -184,7 +186,6 @@ class CalendareventRepository extends EntityRepository else { $em->getRepository("CadolesPortalBundle:Project")->getProjectsUser($user,$projectssuser,$projectsadmin,$projectsshared); $projects=array_merge($projectssuser,$projectsadmin->toArray(),$projectsshared); - $firstcalendar="all"; } foreach($projects as $project) { diff --git a/src/ninegate-1.0/src/Cadoles/PortalBundle/Repository/PageRepository.php b/src/ninegate-1.0/src/Cadoles/PortalBundle/Repository/PageRepository.php index 104acf2c..d7f303b0 100644 --- a/src/ninegate-1.0/src/Cadoles/PortalBundle/Repository/PageRepository.php +++ b/src/ninegate-1.0/src/Cadoles/PortalBundle/Repository/PageRepository.php @@ -128,7 +128,7 @@ class PageRepository extends EntityRepository else { // Si l'utilisateur est manager du group il aura les permissions de modification sur la page $usergroup=$this->getEntityManager()->getRepository("CadolesCoreBundle:UserGroup")->findOneBy(["user"=>$user,"group"=>$groupshared]); - if($usergroup&&$usergroup->getFgmanager()) { + if($usergroup&&$usergroup->getRolegroup()>=90) { foreach($pagesshared as $key2 => $pageshared) { $pagesshared[$key2]->setCanupdate(true); } @@ -298,11 +298,12 @@ class PageRepository extends EntityRepository } } - public function getPermission($user,$page,&$cansee,&$canupdate) { + public function getPermission($user,$page,&$cansee,&$canupdate,&$canadd) { // si page de l'utilisateur if($page->getUser()==$user&&!is_null($user)) { $cansee=true; $canupdate=true; + $canadd=true; } else { $canupdate=false; @@ -361,7 +362,8 @@ class PageRepository extends EntityRepository $cansee=true; // Est-il manager du groupe if($group->getGroup()->getFgcanshare()) { - if($group->getFgmanager()) $canupdate=true; + if($group->getRolegroup()>=90) $canupdate=true; + if($group->getRolegroup()>=50) $canadd=true; } } } diff --git a/src/ninegate-1.0/src/Cadoles/PortalBundle/Repository/ProjectRepository.php b/src/ninegate-1.0/src/Cadoles/PortalBundle/Repository/ProjectRepository.php index c7ddc3ee..ec6462c9 100644 --- a/src/ninegate-1.0/src/Cadoles/PortalBundle/Repository/ProjectRepository.php +++ b/src/ninegate-1.0/src/Cadoles/PortalBundle/Repository/ProjectRepository.php @@ -68,34 +68,6 @@ class ProjectRepository extends EntityRepository // projects partagées $projectsshared=[]; - /* - if($user) { - $projectsshared=$this->createQueryBuilder('project') - ->from('CadolesCoreBundle:Group','g') - ->from('CadolesCoreBundle:UserGroup','ug') - ->from('CadolesCoreBundle:UserGroup','proprio') - ->where('g.fgcanshare=:fgcanshare') - ->andWhere('g=ug.group') - ->andWhere('ug.user=:user') - ->andWhere('g MEMBER OF project.groups') - ->andWhere('project.user != :user') - ->andWhere('project.user is not null') - ->andWhere('proprio.user=project.user') - ->andWhere('proprio.group=g') - ->setParameter('fgcanshare',true) - ->setParameter('user',$user) - ->addOrderBy('project.name', 'ASC') - ->getQuery()->getResult(); - } - - // Permission sur les projects - if($projectsshared) { - foreach($projectsshared as $projectshared) { - $projectshared->setCanupdate(false); - $projectshared->setCanadd($this->getInwriter($user,$projectshared)); - } - } - */ // Initialisation du calcul des projects $projectsadmin=new ArrayCollection(); @@ -129,7 +101,7 @@ class ProjectRepository extends EntityRepository // Permission sur les projects foreach($projectsadmin as $projectadmin) { - $projectadmin->setCanupdate(false); + $projectadmin->setCanupdate($this->getInmanager($user,$projectadmin)); $projectadmin->setCanadd($this->getInwriter($user,$projectadmin)); } } @@ -150,28 +122,6 @@ class ProjectRepository extends EntityRepository $roles=($user?$user->getRoles():["ROLE_ANONYME"]); $groups=($user?$user->getGroups():[]); - // Le project est-il dans les projects associés à un partage de group ? - /* - $inprojectsshared=$this->createQueryBuilder('project') - ->from('CadolesCoreBundle:Group','g') - ->from('CadolesCoreBundle:UserGroup','ug') - ->from('CadolesCoreBundle:UserGroup','proprio') - ->where('g.fgcanshare=:fgcanshare') - ->andWhere('project.id = :id') - ->andWhere('g=ug.group') - ->andWhere('ug.user=:user') - ->andWhere('g MEMBER OF project.groups') - ->andWhere('project.user != :user') - ->andWhere('project.user is not null') - ->andWhere('proprio.user=project.user') - ->andWhere('proprio.group=g') - ->setParameter("id",$project->getId()) - ->setParameter('fgcanshare',true) - ->setParameter('user',$user) - ->getQuery()->getResult(); - if($inprojectsshared) $cansee=true; - */ - // Le project est-il dans les projects associés au role de l'utilisateur ? foreach($roles as $role) { $qb = $this->createQueryBuilder("project"); @@ -198,7 +148,8 @@ class ProjectRepository extends EntityRepository // Est-il manager du groupe if($group->getGroup()->getFgcanshare()) { - if($group->getFgmanager()) $canadd=true; + if($group->getRolegroup()>=90) $canupdate=true; + if($group->getRolegroup()>=0) $canadd=true; } } } @@ -210,7 +161,7 @@ class ProjectRepository extends EntityRepository } public function getInwriter($user,$project) { - $canadd=false; + $can=false; if($user) { // Peut ecrire ceux qui sont déclaré comme écrivain @@ -229,7 +180,7 @@ class ProjectRepository extends EntityRepository ->setparameter('user',$user); $inprojectwriters=$qb->getQuery()->getResult(); - if($inprojectwriters) $canadd=true; + if($inprojectwriters) $can=true; // Peut ecrire ceux qui sont manager du groupe auquel est rattaché le project $qb = $this->createQueryBuilder("project"); @@ -240,7 +191,7 @@ class ProjectRepository extends EntityRepository ->from('CadolesCoreBundle:UserGroup','usergroup') ->andwhere('usergroup.group MEMBER OF project.groups') ->andwhere('usergroup.user=:user') - ->andwhere('usergroup.fgmanager=:flag') + ->andwhere('usergroup.rolegroup>=:role') ->from('CadolesCoreBundle:Group','groupe') ->andwhere('groupe=usergroup.group') @@ -248,13 +199,80 @@ class ProjectRepository extends EntityRepository ->setParameter("id",$project->getId()) ->setparameter('user',$user) - ->setparameter('flag',true); + ->setparameter('flag',true) + ->setparameter('role',0); $inprojectwriters=$qb->getQuery()->getResult(); - if($inprojectwriters) $canadd=true; + if($inprojectwriters) $can=true; } - return $canadd; + return $can; } + + public function getInmanager($user,$project) { + $can=false; + + if($user) { + // Peut ecrire ceux qui sont manager du groupe auquel est rattaché le project + $qb = $this->createQueryBuilder("project"); + $qb ->andWhere("project.id=:id") + ->from('CadolesCoreBundle:User','user') + ->andwhere("user=:user") + + ->from('CadolesCoreBundle:UserGroup','usergroup') + ->andwhere('usergroup.group MEMBER OF project.groups') + ->andwhere('usergroup.user=user') + ->andwhere('usergroup.rolegroup>=:role') + + ->from('CadolesCoreBundle:Group','groupe') + ->andwhere('groupe=usergroup.group') + ->andwhere('groupe.fgcanshare=:flag') + + ->setParameter("id",$project->getId()) + ->setParameter("role",90) + ->setparameter('user',$user) + ->setparameter('flag',true); + + + $inblogwriters=$qb->getQuery()->getResult(); + + if($inblogwriters) $can=true; + } + + return $can; + } + + public function getInvalideur($user,$project) { + $can=false; + + if($user) { + // Peut ecrire ceux qui sont manager du groupe auquel est rattaché le project + $qb = $this->createQueryBuilder("project"); + $qb ->andWhere("project.id=:id") + ->from('CadolesCoreBundle:User','user') + ->andwhere("user=:user") + + ->from('CadolesCoreBundle:UserGroup','usergroup') + ->andwhere('usergroup.group MEMBER OF project.groups') + ->andwhere('usergroup.user=user') + ->andwhere('usergroup.rolegroup>=:role') + + ->from('CadolesCoreBundle:Group','groupe') + ->andwhere('groupe=usergroup.group') + ->andwhere('groupe.fgcanshare=:flag') + + ->setParameter("id",$project->getId()) + ->setParameter("role",50) + ->setparameter('user',$user) + ->setparameter('flag',true); + + + $inblogwriters=$qb->getQuery()->getResult(); + + if($inblogwriters) $can=true; + } + + return $can; + } } diff --git a/src/ninegate-1.0/src/Cadoles/PortalBundle/Resources/views/Blogarticle/view.html.twig b/src/ninegate-1.0/src/Cadoles/PortalBundle/Resources/views/Blogarticle/view.html.twig index 39b1160e..10e11ff1 100644 --- a/src/ninegate-1.0/src/Cadoles/PortalBundle/Resources/views/Blogarticle/view.html.twig +++ b/src/ninegate-1.0/src/Cadoles/PortalBundle/Resources/views/Blogarticle/view.html.twig @@ -69,7 +69,7 @@

{{entity.name}}

publié par {{ entity.user.username }} le {{ entity.submit|date("d/m/Y à H:i") }} dans le blog {{entity.blog.name }} - {% if canadd %} + {% if canupdate %} {% endif %}
@@ -87,7 +87,7 @@

{{comment.name}}

publié par {{ comment.user.username }} le {{ comment.submit|date("d/m/Y à H:i") }} - {% if canadd or app.user==comment.user%} + {% if canupdate or app.user==comment.user%} {% endif %}
@@ -100,7 +100,7 @@

{{reply.name}}

publié par {{ reply.user.username }} le {{ reply.submit|date("d/m/Y à H:i") }} - {% if canadd or app.user==reply.user%} + {% if canupdate or app.user==reply.user%} {% endif %}
diff --git a/src/ninegate-1.0/src/Cadoles/PortalBundle/Resources/views/Calendar/view.html.twig b/src/ninegate-1.0/src/Cadoles/PortalBundle/Resources/views/Calendar/view.html.twig index 5a260fe0..16df9229 100644 --- a/src/ninegate-1.0/src/Cadoles/PortalBundle/Resources/views/Calendar/view.html.twig +++ b/src/ninegate-1.0/src/Cadoles/PortalBundle/Resources/views/Calendar/view.html.twig @@ -24,8 +24,6 @@ {% for calendar in calendars %}