Example #1
0
 /**
  * Delegate base right
  *
  * @GroupSecurity("user_can('delegate')", group="permission.getGroup()", strict_expression=true)
  *
  * @Route("/delegate/{group}/{user}", name="adh_user_group_delegate")
  * @Method({"GET", "POST"})
  * 
  * @ParamConverter("permission", options={"repository_method": "findOneByGroupAndUser", "mapping": {"group": "group", "user": "******"}, "map_method_signature": true})
  *
  * @param Request $request 
  * @param Group $group 
  */
 public function delegateAction(Request $request, GroupUserPermission $permission)
 {
     $groupSecurityChecker = $this->get("adh_user.group_security_checker");
     $userPermission = $groupSecurityChecker->getUserPermission($permission->getGroup());
     $delegateBaseRight = new DelegateBaseRight($permission);
     $form = $this->createForm(new DelegateBaseRightType($userPermission), $delegateBaseRight);
     $form->handleRequest($request);
     if ($form->isSubmitted() && $form->isValid()) {
         $entityManager = $this->getDoctrine()->getManager();
         $permission->setAddMemberRight($delegateBaseRight->hasAddMemberRight());
         $permission->setRemoveMemberRight($delegateBaseRight->hasRemoveMemberRight());
         $permission->setChangeStatusRight($delegateBaseRight->hasChangeStatusRight());
         $entityManager->flush();
         return $this->redirectToRoute("adh_user_group_member_list", array("group" => $permission->getGroup()->getShortRole()));
     }
     return $this->render("ADHUserBundle:Group/Right:delegate.html.twig", array("user" => $permission->getUser(), "group" => $permission->getGroup(), "form" => $form->createView()));
 }