Esempio n. 1
0
 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!");
 }
Esempio n. 2
0
 /**
  * @Route("/user/do-github-login", name="do_github_login")
  */
 public function doGithubLoginAction()
 {
     $this->init();
     $request = $this->getRequest();
     $client_secret = 'd945ef6df389f0fa5d95eb638fd74fccf623d218';
     if ($code = $request->get('code')) {
         $data = sprintf('client_id=%s&client_secret=%s&code=%s', self::CLIENT_ID, $client_secret, urlencode($code));
         $ch = curl_init('https://github.com/login/oauth/access_token');
         curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
         curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
         $response = curl_exec($ch);
         preg_match('/access_token=([0-9a-f]+)/', $response, $out);
         curl_close($ch);
         //ld($response);
         sleep(1);
         if (isset($out[1])) {
             $access_token = $out[1];
             /**
             * {
             "login": "******",
             "id": 1332197,
             "avatar_url": "https://gravatar.com/avatar/05294fb8badbde3c6999bae2c0024165?d=https%3A%2F%2Fidenticons.github.com%2Fce92b9ab89941caa47947924ac110d1f.png&r=x",
             "gravatar_id": "05294fb8badbde3c6999bae2c0024165",
             "url": "https://api.github.com/users/jlaso",
             "html_url": "https://github.com/jlaso",
             "followers_url": "https://api.github.com/users/jlaso/followers",
             "following_url": "https://api.github.com/users/jlaso/following{/other_user}",
             "gists_url": "https://api.github.com/users/jlaso/gists{/gist_id}",
             "starred_url": "https://api.github.com/users/jlaso/starred{/owner}{/repo}",
             "subscriptions_url": "https://api.github.com/users/jlaso/subscriptions",
             "organizations_url": "https://api.github.com/users/jlaso/orgs",
             "repos_url": "https://api.github.com/users/jlaso/repos",
             "events_url": "https://api.github.com/users/jlaso/events{/privacy}",
             "received_events_url": "https://api.github.com/users/jlaso/received_events",
             "type": "User",
             "site_admin": false,
             "name": "Joseluis Laso",
             "company": "Joseluislaso",
             "blog": "http://www.joseluislaso.es",
             "location": "Valencia",
             "email": "*****@*****.**",
             "hireable": true,
             "bio": "Web developper apasionate, with PHP, jQuery, jQuerymobile, Symfony, Doctrine, Slim, CSS3, HTML5 ...",
             "public_repos": 57,
             "public_gists": 2,
             "followers": 2,
             "following": 16,
             "created_at": "2012-01-15T20:51:17Z",
             "updated_at": "2014-01-24T13:24:19Z"
             }
             */
             $data = $this->getDataFromGitHub($access_token);
             if (!count($data)) {
                 $this->addNoticeFlash('error.github_connect_not_possible');
                 $this->redirect($this->generateUrl('user_login'));
             }
             //ld($data); sleep(4);
             try {
                 $login = $data['login'];
                 $avatar_url = $data['avatar_url'];
                 $user = $this->getUserRepository()->findOneBy(array('username' => $login));
                 $email = isset($data['email']) ? $data['email'] : $login . '*****@*****.**';
                 if (!$user instanceof User) {
                     $user = $this->getUserRepository()->findOneBy(array('email' => $email));
                 }
                 if (!$user instanceof User) {
                     $user = new User();
                     $user->setEmail($email);
                     $user->setName(isset($data['name']) ? $data['name'] : 'unknown');
                     $user->setActive(true);
                     $user->setPassword(uniqid());
                     $user->setUsername($login);
                     $user->addRole('ROLE_TRANSLATOR');
                     $user->setAvatarUrl($avatar_url);
                     $this->em->persist($user);
                     $this->em->flush();
                 }
                 $this->loginAs($user);
                 //return new Response('OK');
                 return $this->redirect($this->generateUrl('user_index'));
             } catch (\Exception $e) {
                 print $e->getMessage();
                 var_dump($data);
             }
         } else {
             var_dump($response);
         }
     }
     return new Response('OK');
 }