public function AsideAction(Request $request)
 {
     if ($request->isInternal()) {
         $this->loadModel('CategoryModel');
         $this->loadModel('EmailModel');
         $this->loadModel('TwitterModel');
         $this->loadModel('RssModel');
         $id = $request->getSession()->get('id');
         $categories = $this->categorymodel->getByUserId($id);
         $emailStreams = $this->emailmodel->getByUserId($id);
         $twitterStreams = $this->twittermodel->getByUserId($id);
         $rssStreams = $this->rssmodel->getByUserId($id);
         $streams = array('emailStreams' => $emailStreams, 'twitterStreams' => $twitterStreams, 'rssStreams' => $rssStreams);
         $data = array('categories' => $categories, 'streams' => $streams);
         $this->render('layouts/aside', $data);
     }
 }
 public function ArticleAction(Request $request, $id)
 {
     if ($request->isInternal()) {
         $this->loadModel('ArticleModel');
         /** @var ArticleEntity $article */
         $article = $this->articlemodel->getById($id);
         if ($article) {
             $user = $request->getSession()->get('id');
             //$favoris = $this->articlemodel->getIdOfFavoris($request->getSession()->get('id'));
             //Renvoyer des boolean Est dans les favoris,est dans les stream des followers, est dans le blog perso ou pas, etc
             $favoris = $this->articlemodel->getArticleFromBlog($user, $article->getId());
             $blog = $this->articlemodel->getArticleFromBlog($user, $article->getId());
             $this->render('layouts/article', array('article' => $article, 'favoris' => $favoris, 'blog' => $blog));
         }
     } else {
         $this->loadModel('ArticleModel');
         /** @var ArticleEntity $article */
         $article = $this->articlemodel->getById($id);
         if ($article) {
             $this->render('layouts/home', array('title' => substr($article->getTitle(), 0, 50) . '...', 'articles' => array($article)));
         } else {
             $this->redirectToRoute('index');
         }
     }
 }
 public function FacebookAction(Request $request)
 {
     if ($request->getSession()->isGranted(Session::USER_IS_CONNECTED)) {
         $this->redirectToRoute('index');
         return;
     }
     $appId = '1563533667270416';
     $appSecret = 'e8d11a4b6bef48629c71839c86de8b01';
     foreach ($_COOKIE as $k => $v) {
         if (strpos($k, "FBRLH_") !== FALSE) {
             $_SESSION[$k] = $v;
         }
     }
     $fb = new Facebook\Facebook(['app_id' => $appId, 'app_secret' => $appSecret, 'default_graph_version' => 'v2.5']);
     foreach ($_COOKIE as $k => $v) {
         if (strpos($k, "FBRLH_") !== FALSE) {
             $_SESSION[$k] = $v;
         }
     }
     $helper = $fb->getRedirectLoginHelper();
     if (isset($_SESSION['facebook_access_token'])) {
         $accessToken = $_SESSION['facebook_access_token'];
         $userData = $fb->get('/me?fields=id,name,email', $accessToken)->getDecodedBody();
         $this->loadModel('UserModel');
         /** @var UserEntity $userEntity */
         $userEntity = $this->usermodel->getByNameOrEmail($userData['email']);
         if ($userEntity) {
             if ($userEntity->getAuthentification() == UserModel::AUTHENTIFICATION_BY_EXTERNAL) {
                 $request->getSession()->set('id', $userEntity->getId());
             }
             // sinon c'est un compte du site, donc pas connectable avec google/facebook
         } else {
             $id = $this->usermodel->addExternalUser($userData['name'], $userData['email']);
             $request->getSession()->set('id', $id);
         }
         if (!$request->isInternal()) {
             $this->redirectToRoute('index');
         } else {
             $helper = $fb->getRedirectLoginHelper();
             $permissions = ['public_profile', 'email', 'user_likes'];
             // optional
             $loginUrl = $helper->getLoginUrl('http://alex83690.alwaysdata.net/aaron/facebook', $permissions);
             foreach ($_SESSION as $k => $v) {
                 if (strpos($k, "FBRLH_") !== FALSE) {
                     if (!setcookie($k, $v)) {
                         //what??
                     } else {
                         $_COOKIE[$k] = $v;
                     }
                 }
             }
             $this->render('forms/facebookForm', array('loginUrl' => $loginUrl, 'errors' => 'Le compte existe déjà. Utilisez le mot de passe pour vous connecter.'));
         }
     } else {
         // We don't have the accessToken
         // But are we in the process of getting it ?
         if (isset($_REQUEST['code'])) {
             try {
                 $accessToken = $helper->getAccessToken();
             } catch (Facebook\Exceptions\FacebookResponseException $e) {
                 $this->redirectToRoute('index');
                 return;
             } catch (Facebook\Exceptions\FacebookSDKException $e) {
                 $this->redirectToRoute('index');
                 return;
             }
             $error = '';
             if (isset($accessToken)) {
                 $_SESSION['facebook_access_token'] = (string) $accessToken;
                 $userData = $fb->get('/me?fields=id,name,email', $accessToken)->getDecodedBody();
                 $this->loadModel('UserModel');
                 /** @var UserEntity $userEntity */
                 if (isset($userData['email'])) {
                     $userEntity = $this->usermodel->getByNameOrEmail($userData['email']);
                     if ($userEntity) {
                         if ($userEntity->getAuthentification() == UserModel::AUTHENTIFICATION_BY_EXTERNAL) {
                             $request->getSession()->set('id', $userEntity->getId());
                         } else {
                             $error = 'Le compte existe déjà. Utilisez le mot de passe pour vous connecter.';
                         }
                     } else {
                         $id = $this->usermodel->addExternalUser($userData['name'], $userData['email']);
                         $request->getSession()->set('id', $id);
                     }
                 }
                 if ($request->isInternal()) {
                     $helper = $fb->getRedirectLoginHelper();
                     $permissions = ['public_profile', 'email', 'user_likes'];
                     // optional
                     $loginUrl = $helper->getLoginUrl('http://alex83690.alwaysdata.net/aaron/facebook', $permissions);
                     foreach ($_SESSION as $k => $v) {
                         if (strpos($k, "FBRLH_") !== FALSE) {
                             if (!setcookie($k, $v)) {
                                 //what??
                             } else {
                                 $_COOKIE[$k] = $v;
                             }
                         }
                     }
                     $this->render("forms/facebookForm", array('loginUrl' => $loginUrl, 'errors' => $error));
                 } else {
                     $this->redirectToRoute('index');
                 }
             }
         } else {
             // Well looks like we are a fresh dude, login to Facebook!
             $helper = $fb->getRedirectLoginHelper();
             $permissions = ['public_profile', 'email', 'user_likes'];
             // optional
             $loginUrl = $helper->getLoginUrl('http://alex83690.alwaysdata.net/aaron/facebook', $permissions);
             foreach ($_SESSION as $k => $v) {
                 if (strpos($k, "FBRLH_") !== FALSE) {
                     if (!setcookie($k, $v)) {
                         //what??
                     } else {
                         $_COOKIE[$k] = $v;
                     }
                 }
             }
             if ($request->isInternal()) {
                 $this->render("forms/facebookForm", array('loginUrl' => $loginUrl));
             }
         }
     }
 }