/** * @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]; }
/** * @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]; }
/** * {@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); }
/** * @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); }