コード例 #1
0
ファイル: MailTestCommand.php プロジェクト: jlaso/tradukoj
 public function execute(InputInterface $input, OutputInterface $output)
 {
     $container = $this->getContainer();
     /** @var MailerService $mailer */
     $mailer = $container->get('jlaso.mailer_service');
     $envir = $container->get('kernel')->getEnvironment();
     $email = $input->getArgument('email');
     $user = new User();
     $user->setEmail($email);
     $send = $mailer->sendWelcomeMessage($user);
     $output->writeln($send);
     $output->writeln(" done!");
 }
コード例 #2
0
ファイル: UsersController.php プロジェクト: jlaso/tradukoj
 /**
  * @Route("/user-upload-avatar", name="user_upload_avatar")
  */
 public function userUploadAvatarAction(Request $request)
 {
     $session = $request->getSession();
     $this->init();
     $directory = dirname($this->get('kernel')->getRootDir()) . '/web/uploads';
     $name = sprintf("avatar-%06d.png", $this->user->getId());
     foreach ($request->files as $file) {
         $file->move($directory, $name);
         break;
     }
     $avatar = "/uploads/" . $name;
     ImageTools::resizeImage($directory . '/' . $name, 100, 100, array('action' => ImageTools::COPY_ORIG_DEST));
     $this->user->setAvatarUrl($avatar);
     $this->em->persist($this->user);
     $this->em->flush($this->user);
     return $this->redirect($this->generateUrl('user_profile'));
 }
コード例 #3
0
ファイル: DefaultController.php プロジェクト: jlaso/tradukoj
 /**
  * @Route("/select-screenshot/{translationId}", name="translation_select_screenshot")
  * @Template()
  */
 public function selectScrenshotAction(Request $request, $translationId)
 {
     $this->init();
     /** @var Translation $translation */
     $translation = $this->getTranslationRepository()->find($translationId);
     if (!$translation) {
         throw $this->createNotFoundException();
     }
     if ($request->isMethod('POST')) {
         $file = $request->get('file');
         if (!preg_match("/^\\/uploads\\/\\d+\\/(?<file>.*?)\$/", $file, $match)) {
             return $this->printResult(array('result' => false, 'message' => 'file not recognized ' . $file));
         }
         $file = $match['file'];
         $translation->setScreenshot($file);
         $translation->setImageMaps(array());
         $this->dm->persist($translation);
         $this->dm->flush($translation);
         return $this->printResult(array('result' => true));
     }
     $projectId = $translation->getProjectId();
     $files = array();
     $finder = new Finder();
     $finder->files()->in($this->root . "/web/uploads/{$projectId}")->name('*.jpg');
     foreach ($finder as $file) {
         //$fileFull = $file->getRealpath();
         //$relativePath = $file->getRelativePath();
         //$fileName = $file->getRelativePathname();
         $files[] = '/uploads/' . $projectId . '/' . $file->getRelativePathname();
     }
     //if($this->checkPermission(Permission::GENERAL_KEY, Permission::ADMIN_PERM)){
     $project = $this->getProjectRepository()->find($translation->getProjectId());
     return array('translation' => $translation, 'project' => $project, 'action' => '', 'permissions' => $this->user->getPermission(), 'files' => $files);
     //}else{
     //return $this->createNotFoundException('message.not_eough_permissions');
     //}
 }
コード例 #4
0
ファイル: InitCommand.php プロジェクト: jlaso/tradukoj
 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!");
 }
コード例 #5
0
ファイル: SecurityController.php プロジェクト: jlaso/tradukoj
 protected function loginAs(User $user, $providerKey = 'user_index')
 {
     $token = new UsernamePasswordToken($user, $user->getPassword(), $providerKey, $user->getRoles());
     $this->container->get('security.context')->setToken($token);
     /** @var Session $session */
     $session = $this->get('session');
     $session->set('_security_' . $providerKey, serialize($token));
 }
コード例 #6
0
ファイル: MailerService.php プロジェクト: jlaso/tradukoj
 public function sendResettingPasswordConfirmed(User $user)
 {
     $subject = 'Your password has been reset! (' . self::SELF_NAME . ')';
     $template = 'TranslationsBundle:Mails:resettingPasswordConfirmed.html.twig';
     $parameters = array('subject' => $subject, 'user' => $user, 'urls' => array('userIndex' => $this->router->generate('user_index', array(), true), 'contactUs' => $this->router->generate('contact_us', array(), true)));
     return $this->sendMail($subject, $template, $parameters, $user->getEmail());
 }
コード例 #7
0
 /**
  * @param User $user
  *
  * @return Project[]
  */
 public function getProjectsForUser(User $user)
 {
     $projects = array();
     $permissions = $user->getPermissions();
     foreach ($permissions as $permission) {
         $projects[] = $permission->getProject();
     }
     return $projects;
 }