/**
  * @param Member $member
  * @param EmbedBag $includes
  * @return array
  */
 private function getIncludes(Member $member, EmbedBag $includes)
 {
     $embed = ['organization' => null];
     if ($includes->has('organization')) {
         $embed['organization'] = $this->orgaTransformer->transform($member->getOrganization());
     } else {
         $embed['organization'] = $member->getOrganization()->getLogin();
     }
     return ['_embed' => $embed];
 }
Пример #2
0
 /**
  * @param Member $member
  * @param EmbedBag $includes
  * @return array
  */
 private function getIncludes(Member $member, EmbedBag $includes)
 {
     $embed = ['user' => null];
     if ($includes->has('user')) {
         $embed['user'] = $this->userTransformer->transform($member->getUser());
     } else {
         $embed['user'] = $member->getUser()->getLogin();
     }
     return ['_embed' => $embed];
 }
Пример #3
0
 /**
  * {@inheritDoc}
  */
 public function load(ObjectManager $manager)
 {
     $admin = new User();
     $admin->setFullName('Admin ADMIN');
     $admin->setLogin('admin');
     $admin->setMail('*****@*****.**');
     $admin->setIsAdmin(true);
     $admin->setAvatar('admin.png');
     $admin->setBirthday(new \DateTime());
     $admin->setLastVisitHome(new \DateTime());
     $admin->setReadOnlyExpirationDate(new \DateTime());
     $user = new User();
     $user->setFullName('User USER');
     $user->setLogin('user');
     $user->setMail('*****@*****.**');
     $user->setIsAdmin(false);
     $user->setAvatar('user.png');
     $user->setBirthday(new \DateTime());
     $user->setLastVisitHome(new \DateTime());
     $user->setReadOnlyExpirationDate(new \DateTime());
     $orga = new Organization();
     $orga->setName('Orga ORGA');
     $orga->setLogin('orga');
     $orga->setContactMail('*****@*****.**');
     $manager->persist($admin);
     $manager->persist($user);
     $manager->persist($orga);
     $membership = new Member();
     $membership->setOrganization($orga);
     $membership->setUser($user);
     $membership->addPermission('daymail');
     $manager->persist($membership);
     $manager->flush();
     $this->addReference('user_admin', $admin);
     $this->addReference('user_user', $user);
     $this->addReference('user_orga', $orga);
     $this->addReference('user_membership', $orga);
 }
Пример #4
0
 /**
  * @Route("/orga/members/{login}", name="orga_admin_members_edit")
  * @Template()
  */
 public function memberEditAction($login)
 {
     if (!$this->getUserLayer()->isOrga()) {
         return $this->createAccessDeniedResponse();
     }
     /** @var $em EntityManager */
     $em = $this->getDoctrine()->getManager();
     /** @var $member Member */
     $member = $em->createQueryBuilder()->select('m, u')->from('EtuUserBundle:Member', 'm')->leftJoin('m.user', 'u')->where('m.organization = :orga')->andWhere('u.login = :login')->setParameter('orga', $this->getUser()->getId())->setParameter('login', $login)->setMaxResults(1)->getQuery()->getOneOrNullResult();
     if (!$member) {
         throw $this->createNotFoundException(sprintf('Login %s or membership not found', $login));
     }
     $availableRoles = Member::getAvailableRoles();
     foreach ($availableRoles as $key => $role) {
         $availableRoles[$key] = array('identifier' => $role, 'name' => 'user.orga.role.' . $role, 'selected' => $role == $member->getRole());
     }
     $availablePermissions = $this->getKernel()->getAvailableOrganizationsPermissions()->toArray();
     $permissions1 = array();
     $permissions2 = array();
     $i = floor(count($availablePermissions) / 2);
     foreach ($availablePermissions as $permission) {
         if ($member->hasPermission($permission->getName())) {
             $permission = array('definition' => $permission, 'checked' => true);
         } else {
             $permission = array('definition' => $permission, 'checked' => false);
         }
         if ($i == 0) {
             $permissions1[] = $permission;
         } else {
             $permissions2[] = $permission;
             $i--;
         }
     }
     $request = $this->getRequest();
     if ($request->getMethod() == 'POST') {
         if ($request->get('role') != null && in_array(intval($request->get('role')), Member::getAvailableRoles())) {
             $member->setRole(intval($request->get('role')));
         }
         if ($member->getRole() == Member::ROLE_PRESIDENT) {
             $this->getUser()->setPresident($member->getUser());
             $em->persist($this->getUser());
             $em->flush();
         }
         if (is_array($request->get('permissions'))) {
             $userPermissions = array();
             foreach ($request->get('permissions') as $permission => $value) {
                 $userPermissions[] = $permission;
             }
             $member->setPermissions($userPermissions);
         } else {
             $member->setPermissions(array());
         }
         $em->persist($member);
         $em->flush();
         $this->get('session')->getFlashBag()->set('message', array('type' => 'success', 'message' => 'user.orga.memberEdit.confirm'));
         return $this->redirect($this->generateUrl('orga_admin_members_edit', array('login' => $member->getUser()->getLogin())));
     }
     return array('member' => $member, 'user' => $member->getUser(), 'roles' => $availableRoles, 'permissions1' => $permissions1, 'permissions2' => $permissions2);
 }