From 0dd780cbbe52a385108d2c6daf0fc5b27f1b1fcd Mon Sep 17 00:00:00 2001
From: Lucas Schoenfelder <les17@inf.ufpr.br>
Date: Fri, 4 Dec 2020 10:12:03 -0300
Subject: [PATCH] added previous changes made to google login

---
 src/Components/Header.js | 75 ++++++++++++++++++++++++++++++++++++++--
 1 file changed, 73 insertions(+), 2 deletions(-)

diff --git a/src/Components/Header.js b/src/Components/Header.js
index 9448ecef..e0ec468a 100644
--- a/src/Components/Header.js
+++ b/src/Components/Header.js
@@ -16,8 +16,9 @@ GNU Affero General Public License for more details.
 You should have received a copy of the GNU Affero General Public License
 along with Plataforma Integrada MEC.  If not, see <http://www.gnu.org/licenses/>.*/
 
-import React, { useContext, useState } from 'react'
-
+import React, { useContext, useState, useEffect } from 'react'
+import axios from 'axios'
+import {apiUrl} from '../env'
 import AcessibilityBar from './AcessibilityBar'
 import MenuBar from './MenuBar'
 import SearchBar from './SearchBar'
@@ -46,6 +47,76 @@ export default function Header(props){
   const [successfulLoginOpen, handleSuccessfulLogin] = useState(false)
   const [modalColaborar, setModalColaborar] = useState(false)
 
+  useEffect ( () => {
+      if (state.currentUser.askTeacherQuestion == true) {
+          dispatch({
+            type: "TOGGLE_MODAL_COLABORAR_PLATAFORMA",
+            modalColaborarPlataformaOpen: true
+          });
+      }
+  }, [state.currentUser.askTeacherQuestion])
+
+  const redirect = () => {
+      props.history.push('/')
+  }
+
+  let loc = useLocation()
+  useEffect(() => {
+      let query = new URLSearchParams(loc.search)
+
+      //POR PARAMETRO
+      console.log(query.getAll("auth_token"))
+      if(query.get("auth_token") != undefined) {
+  	       let config = {
+  		           headers : {
+  			                  "access-token" : query.get("auth_token"),
+  			                  "client" : query.get("client_id"),
+  			                  "uid" : query.get("uid"),
+  			                  "expiry" : query.get("expiry"),
+  			                  "token-type" : 'Bearer'
+  		   }
+  	   }
+  	   axios.get(`${apiUrl}/auth/validate_token/`, config).then(
+  		   (response) => {
+               console.log(response.data)
+               if ( response.headers['access-token'] ) {
+                   sessionStorage.setItem('@portalmec/accessToken', response.headers['access-token'])
+               }
+               dispatch ({
+                   type: "USER_LOGGED_IN",
+                   userLoggedIn: !state.userIsLoggedIn,
+                   login: {
+                       askTeacherQuestion : response.data.data.ask_teacher_question,
+                       id : response.data.data.id,
+                       username : response.data.data.name,
+                       email : response.data.data.email,
+                       accessToken : response.headers['access-token'],
+                       clientToken : response.headers.client,
+                       userAvatar : response.data.data.avatar_file_name,
+                       userCover : response.data.data.cover_file_name,
+                       uid : response.data.data.uid,
+                       followCount : response.data.data.follows_count,
+                       collectionsCount : response.data.data.collections_count,
+                       submitter_request : response.data.data.submitter_request,
+                       roles : response.data.data.roles
+                       }
+                   }
+               )
+               sessionStorage.setItem('@portalmec/accessToken', response.headers['access-token'])
+               sessionStorage.setItem('@portalmec/clientToken', response.headers.client)
+               sessionStorage.setItem('@portalmec/id', response.data.data.id)
+               sessionStorage.setItem('@portalmec/username', response.data.data.name)
+               sessionStorage.setItem('@portalmec/uid', response.data.data.uid)
+               redirect()
+           },
+           (err) => {
+               console.log(err)
+           }
+  	   )
+      }
+  }, [loc])
+
+
   const toggleSnackbar = (event, reason) => {
       if (reason === 'clickaway') {
           return;
-- 
GitLab