setMasterUser($user); $form = $this->createForm( SubscriberType::class, $subscriber, [ 'action' => $this->generateUrl('admin_user_subscriber_new'), 'show_master_selector' => false, ] ); return $this->render($this->getTemplate('show'), [ 'user' => $user, 'subscriberForm' => $form->createView(), 'listUrl' => $this->generateCRUDUrl('index'), 'editUrl' => $this->generateCRUDUrl('edit', $user->getId()), 'deleteUrl' => $this->generateCRUDUrl('delete', $user->getId()), ]); } /** * @param object|User $entity Created entity instance. * * @return null|Response */ public function preCreate($entity) { if ($entity->hasRole(UserRoleEnum::MASTER_USER)) { // // Subscribe created masters to free plan. // $em = $this->getDoctrine()->getManager(); $freePlan = current(array_filter( $em->getRepository(Plan::class)->findAll(), function (Plan $plan) { return $plan->isFree(); } )); if ($freePlan === null) { $this->addFlash('admin_error', 'Can\'t create master \'cause we don\'t have free plan'); return $this->redirectToRoute($this->getRoute('index')); } $subscription = new PersonalSubscription(); $subscription ->setPlan($freePlan) ->setGateway(PaymentGatewayEnum::paypal()) ->setPayed(true) ->setOwner($entity); $entity->setBillingSubscription($subscription); } return null; } }