Пример #1
0
 /**
  * Add member to group
  *
  * @Security("is_fully_authenticated()")
  * @GroupSecurity("group_is('joinable') and user_can('add member')", group="group")
  * 
  * @Route("/add/{group}", name="adh_user_group_member_add")
  * @Method({"GET", "POST"})
  * 
  * @ParamConverter("group", options={"mapping": {"group": "role"}})
  *
  * @param Request $request
  * @param Group $group
  */
 public function addAction(Request $request, Group $group)
 {
     $searchUser = new SearchUser();
     $form = $this->createForm(new SearchUserType(), $searchUser);
     $form->handleRequest($request);
     if ($form->isSubmitted() && $form->isValid()) {
         $entityManager = $this->getDoctrine()->getManager();
         $groupUserPermission = new GroupUserPermission();
         $groupUserPermission->setGroup($group);
         $groupUserPermission->setUser($searchUser->getUser());
         $entityManager->persist($groupUserPermission);
         $entityManager->flush();
         return $this->redirectToRoute("adh_user_group_member_list", array("group" => $group->getShortRole(), "size" => $request->isXmlHttpRequest() ? 4 : 24));
     }
     return $this->render("ADHUserBundle:Group/Member:add.html.twig", array("form" => $form->createView(), "group" => $group));
 }
Пример #2
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()));
 }
Пример #3
0
 /**
  * 
  * @param GroupUserPermission $permission
  */
 public function __construct(GroupUserPermission $permission = null)
 {
     $this->setAddMemberRight($permission->hasAddMemberRight());
     $this->setRemoveMemberRight($permission->hasRemoveMemberRight());
     $this->setChangeStatusRight($permission->hasChangeStatusRight());
 }