<?php namespace KekRozsak\AdminBundle\Controller; use Symfony\Bundle\FrameworkBundle\Controller\Controller; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template; use Symfony\Component\Security\Core\Exception\AccessDeniedException; /** * @Route("/admin") */ class DefaultController extends Controller { /** * @Route("/regisztraltak.html", name="KekRozsakAdminBundle_manage_regs") * @Template() */ public function manageRegsAction() { if (!$this->get('security.context')->isGranted('ROLE_ADMIN')) { throw new AccessDeniedException('Ehhez a művelethez nincs jogosultságod.'); } $users = $this->getDoctrine()->getEntityManager()->createQuery('SELECT u FROM KekRozsakSecurityBundle:User u WHERE u.acceptedBy IS NULL')->getResult(); $request = $this->getRequest(); if ($request->getMethod() == 'POST') { if (is_numeric($userid = $request->get('userid'))) { if (($user = $this->getDoctrine()->getRepository('KekRozsakSecurityBundle:User')->findOneById($userid)) != null) { $activeUser = $this->get('security.context')->getToken()->getUser(); $user->setAcceptedBy($activeUser); $em = $this->getDoctrine()->getEntityManager(); $em->persist($user); $em->flush(); return $this->redirect($this->generateUrl('KekRozsakAdminBundle_manage_regs')); } } } return array( 'users' => $users, ); } /** * @Route("/csoport-jelentkezok.html", name="KekRozsakAdminBundle_groupJoinRequests") * @Template() */ public function groupJoinRequestsAction() { $user = $this->get('security.context')->getToken()->getUser(); $groupRepo = $this->getDoctrine()->getRepository('KekRozsakFrontBundle:Group'); $myGroups = $groupRepo->findByLeader($user); $request = $this->getRequest(); if ($request->getMethod() == 'POST') { if ($request->request->has('group') && $request->request->has('user')) { $userRepo = $this->getDoctrine()->getRepository('KekRozsakSecurityBundle:User'); $aUser = $userRepo->findOneById($request->request->get('user')); $aGroup = $groupRepo->findOneById($request->request->get('group')); if ($aUser && $aGroup) { $membershipRepo = $this->getDoctrine()->getRepository('KekRozsakFrontBundle:UserGroupMembership'); $membershipObject = $membershipRepo->findOneBy(array('user' => $aUser, 'group' => $aGroup)); if ($membershipObject) { $membershipObject->setMembershipAcceptedAt(new \DateTime('now')); $membershipObject->setMembershipAcceptedBy($user); $em = $this->getDoctrine()->getEntityManager(); $em->persist($membershipObject); $em->flush(); return $this->redirect($this->generateUrl('KekRozsakAdminBundle_groupJoinRequests')); } } } } return array( 'groups' => $myGroups, ); } /** * @Route("/csoport-jelentkezok/elutasitas.html", name="KekRozsakAdminBundle_groupJoinDecline") * @Template() */ public function groupJoinDeclineAction() { // TODO: A reason must be written to decline a join request! return array( ); } }