public function execute(InputInterface $input, OutputInterface $output) { $container = $this->getContainer(); /** @var EntityManager $em */ $em = $container->get('doctrine')->getManager(); // Create first user $user = new User(); $user->setEmail('*****@*****.**'); $user->setName('Admin Tradukoj'); $user->setActive(true); $user->addRole(User::ROLE_ADMIN); $user->setPassword('Tradukoj$1234'); /** @var EncoderFactory $encoderFactory */ $encoderFactory = $container->get('security.encoder_factory'); $encoder = $encoderFactory->getEncoder($user); $user->setPassword($encoder->encodePassword($user->getPassword(), $user->getSalt())); $em->persist($user); $em->flush(); $usersColl = new ArrayCollection(); $usersColl->add($user); // create first project $project = new Project(); $project->setName('tradukoj'); $project->setApiKey('tradukoj.com'); $project->setApiSecret('Tradukoj$1234'); $project->setManagedLocales('en,es'); $project->setProject('tradukoj'); //$project->setUsers($usersColl); $permission = new Permission(); $permission->setUser($user); $permission->setProject($project); $permission->addPermission(Permission::OWNER); // Give permission to write in all languages $permission->addPermission(Permission::WRITE_PERM, '*'); $em->persist($permission); $em->persist($project); $em->flush(); $output->writeln(" done!"); }
/** * Create new Project * * @Route("/new-project", name="new_project") * @Template() */ public function newProjectAction(Request $request) { $this->init(); $project = new Project(); $form = $this->createForm(new NewProjectType(), $project); if ($request->isMethod('POST')) { $form->bind($request); if ($form->isValid()) { $permission = new Permission(); $permission->setUser($this->user); $permission->setProject($project); $permission->addPermission(Permission::OWNER); // Give permission to write in all languages $permission->addPermission(Permission::WRITE_PERM, '*'); $this->em->persist($permission); $this->em->persist($project); $this->em->flush(); /** @var MailerService $mailer */ $mailer = $this->get('jlaso.mailer_service'); try { $send = $mailer->sendNewProjectMessage($project, $this->user); } catch (\Exception $e) { if ($this->get('kernel')->getEnvironment() == 'prod') { // ? } } return $this->redirect($this->generateUrl('user_index')); } } return array('error' => null, 'form' => $form->createView(), 'project' => $project); }
/** * @Route("/add-user/{projectId}", name="users_add_new_user") * @Template() * @ParamConverter("project", class="TranslationsBundle:Project", options={"id" = "projectId"}) */ public function newUserAction(Project $project, Request $request) { $session = $request->getSession(); $this->init(); /** @var Permission $permission */ $permission = $this->translationsManager->getPermissionForUserAndProject($this->user, $project); if (!$permission || $permission->getPermissions(Permission::GENERAL_KEY) != Permission::OWNER) { throw new AclException($this->translator->trans('error.acl.not_enough_permissions_to_manage_this_project')); } $email = $request->get('email'); $user = $this->getUserRepository()->findOneBy(array('email' => $email)); if (!$user) { $user = new User(); $user->setEmail($email); // //$user->set /** @var MailerService $mailer */ $mailer = $this->get('jlaso.mailer_service'); try { $send = $mailer->sendWelcomeMessage($user); } catch (\Exception $e) { } if (is_string($send)) { $this->addNoticeFlash($send); } else { $this->addNoticeFlash('user.permissions.user_invited'); } } else { $managedLocales = explode(',', $project->getManagedLocales()); /** @var Permission[] $permissions */ $permissions = $this->getPermissionRepository()->findBy(array('project' => $project)); $usersData = array(); $alreadyExists = false; foreach ($permissions as $perm) { $currentUser = $perm->getUser(); $usersData[] = array('id' => $currentUser->getId(), 'name' => $currentUser->getName(), 'email' => $currentUser->getEmail(), 'createdAt' => $currentUser->getCreatedAt(), 'active' => $currentUser->getActive(), 'permissions' => $this->expandPermissions($managedLocales, $perm->getPermissions())); if ($currentUser->getEmail() == $email) { $this->addNoticeFlash('user.permissions.user_already_exists'); $alreadyExists = true; } } if (!$alreadyExists) { $permission = new Permission(); $permission->setUser($user); $permission->setProject($project); $permission->addPermission(Permission::COLLABORATOR); // Give permission to write in all languages $permission->addPermission(Permission::READ_PERM, '*'); $this->em->persist($permission); $this->em->flush(); } } // ldd($usersData, $permission->getPermissions()); return $this->redirect($this->generateUrl('users_index', array('projectId' => $project->getId()))); // return array( // 'action' => 'users', // 'project' => $project, // 'permissions' => $permission->getPermissions(), // 'users' => $usersData, // 'managedLocales' => $managedLocales, // ); }