Kaynağa Gözat

Cookie base auth

amenpunk 3 yıl önce
ebeveyn
işleme
91de82edb1

+ 14 - 0
psicoadmin/package-lock.json

@@ -16,6 +16,7 @@
16 16
         "@testing-library/react": "^11.1.0",
17 17
         "@testing-library/user-event": "^12.1.10",
18 18
         "bootstrap": "^5.1.3",
19
+        "js-cookie": "^3.0.1",
19 20
         "react": "^17.0.2",
20 21
         "react-bootstrap": "^2.0.2",
21 22
         "react-dom": "^17.0.2",
@@ -12075,6 +12076,14 @@
12075 12076
         "node": ">= 10.13.0"
12076 12077
       }
12077 12078
     },
12079
+    "node_modules/js-cookie": {
12080
+      "version": "3.0.1",
12081
+      "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.1.tgz",
12082
+      "integrity": "sha512-+0rgsUXZu4ncpPxRL+lNEptWMOWl9etvPHc/koSRp6MPwpRYAhmk0dUG00J4bxVV3r9uUzfo24wW0knS07SKSw==",
12083
+      "engines": {
12084
+        "node": ">=12"
12085
+      }
12086
+    },
12078 12087
     "node_modules/js-tokens": {
12079 12088
       "version": "4.0.0",
12080 12089
       "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
@@ -29705,6 +29714,11 @@
29705 29714
         "supports-color": "^7.0.0"
29706 29715
       }
29707 29716
     },
29717
+    "js-cookie": {
29718
+      "version": "3.0.1",
29719
+      "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.1.tgz",
29720
+      "integrity": "sha512-+0rgsUXZu4ncpPxRL+lNEptWMOWl9etvPHc/koSRp6MPwpRYAhmk0dUG00J4bxVV3r9uUzfo24wW0knS07SKSw=="
29721
+    },
29708 29722
     "js-tokens": {
29709 29723
       "version": "4.0.0",
29710 29724
       "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",

+ 1 - 0
psicoadmin/package.json

@@ -11,6 +11,7 @@
11 11
     "@testing-library/react": "^11.1.0",
12 12
     "@testing-library/user-event": "^12.1.10",
13 13
     "bootstrap": "^5.1.3",
14
+    "js-cookie": "^3.0.1",
14 15
     "react": "^17.0.2",
15 16
     "react-bootstrap": "^2.0.2",
16 17
     "react-dom": "^17.0.2",

+ 26 - 21
psicoadmin/src/App.css

@@ -1,40 +1,40 @@
1 1
 .App {
2
-  text-align: center;
2
+    text-align: center;
3 3
 }
4 4
 
5 5
 .App-logo {
6
-  height: 40vmin;
7
-  pointer-events: none;
6
+    height: 40vmin;
7
+    pointer-events: none;
8 8
 }
9 9
 
10 10
 @media (prefers-reduced-motion: no-preference) {
11
-  .App-logo {
12
-    animation: App-logo-spin infinite 20s linear;
13
-  }
11
+    .App-logo {
12
+        animation: App-logo-spin infinite 20s linear;
13
+    }
14 14
 }
15 15
 
16 16
 .App-header {
17
-  background-color: #282c34;
18
-  min-height: 100vh;
19
-  display: flex;
20
-  flex-direction: column;
21
-  align-items: center;
22
-  justify-content: center;
23
-  font-size: calc(10px + 2vmin);
24
-  color: white;
17
+    background-color: #282c34;
18
+    min-height: 100vh;
19
+    display: flex;
20
+    flex-direction: column;
21
+    align-items: center;
22
+    justify-content: center;
23
+    font-size: calc(10px + 2vmin);
24
+    color: white;
25 25
 }
26 26
 
27 27
 .App-link {
28
-  color: #61dafb;
28
+    color: #61dafb;
29 29
 }
30 30
 
31 31
 @keyframes App-logo-spin {
32
-  from {
33
-    transform: rotate(0deg);
34
-  }
35
-  to {
36
-    transform: rotate(360deg);
37
-  }
32
+    from {
33
+        transform: rotate(0deg);
34
+    }
35
+    to {
36
+        transform: rotate(360deg);
37
+    }
38 38
 }
39 39
 
40 40
 .Mui-selected{
@@ -62,3 +62,8 @@
62 62
     line-height: 30px !important;
63 63
     font-size : 12px !important;
64 64
 }
65
+
66
+.MuiContainer-root{
67
+    margin-top : 45px !important;
68
+    max-width : 1777px !important;
69
+}

+ 2 - 0
psicoadmin/src/App.js

@@ -5,6 +5,8 @@ import { createContext } from 'react'
5 5
 import { BrowserRouter as Router } from "react-router-dom";
6 6
 import { Container } from 'react-bootstrap'
7 7
 import { AuthProvider } from './Auth/AuthProvider'
8
+import { useEffect } from 'react'
9
+import  useAuth from './Auth/useAuth'
8 10
 
9 11
 import Routes from './Components/Routes'
10 12
 // import { Header } from './Components/Header';

+ 15 - 10
psicoadmin/src/Auth/AuthProvider.js

@@ -1,26 +1,31 @@
1 1
 import React from 'react'
2
+import Cookies from 'js-cookie'
3
+
2 4
 export const AuthContext = React.createContext();
3 5
 
4 6
 export function AuthProvider ({ children }){
5 7
 
6
-    let [user, setUser] = React.useState( localStorage.getItem("user") )
8
+    let [user, setUser] = React.useState( Cookies.get('user') )
7 9
 
8 10
     const context = {
9 11
         user,
10 12
         login: () => {
11
-            let user = JSON.stringify({ name : 'edgar' , id : 1})
12
-            localStorage.setItem('user', user)
13
-            setUser(user)
13
+            let body = JSON.stringify( { name : 'edgar' , id : 1} )
14
+            Cookies.set('user', body, { expires : 7 })
15
+            setUser(Cookies.get('user'))
16
+
14 17
         },
15 18
         logout : () => {
16
-            setUser(null)
17
-            localStorage.setItem('user', JSON.stringify({ }) )
19
+            Cookies.set('user', undefined)
20
+            setUser(undefined)
18 21
         },
19 22
         isLogged : () => {
20
-            if(!user) return false
21
-            let current = JSON.parse(user)
22
-            let keys = Object.keys(current)
23
-            return  keys.length > 0
23
+            let CookiesUser = Cookies.get('user')
24
+            console.log('existe usuario -> ', CookiesUser)
25
+            if(!CookiesUser){
26
+                return false
27
+            }
28
+            return !!CookiesUser
24 29
         }
25 30
     }
26 31
 

+ 8 - 17
psicoadmin/src/Components/Dashboard.js

@@ -29,7 +29,7 @@ import Logo from '../Images/logo.png';
29 29
 import ProfilePicture from '../Images/man.png';
30 30
 
31 31
 import useAuth from '../Auth/useAuth';
32
-import { Outlet } from "react-router-dom";
32
+import { Outlet, Navigate } from "react-router-dom";
33 33
 
34 34
 
35 35
 const drawerWidth = 240;
@@ -81,24 +81,15 @@ const Drawer = styled(MuiDrawer, { shouldForwardProp: (prop) => prop !== 'open'
81 81
 const mdTheme = createTheme();
82 82
 
83 83
 function DashboardContent() {
84
-    const [open, setOpen] = React.useState(true);
85
-    const toggleDrawer = () => {
86
-        setOpen(!open);
87
-    };
88
-
89 84
 
90
-    let auth = useAuth();
85
+    const [open, setOpen] = React.useState(true);
86
+    const toggleDrawer = () => setOpen(!open);
87
+    const auth = useAuth();
91 88
 
92 89
     const [anchorEl, setAnchorEl] = React.useState(null);
93 90
     const open_profile = Boolean(anchorEl);
94
-    const handleClick = (event) => {
95
-        console.log('show? ')
96
-        setAnchorEl(event.currentTarget);
97
-    };
98
-    const handleClose = () => {
99
-        setAnchorEl(null);
100
-    };
101
-
91
+    const handleClick = (event) => setAnchorEl(event.currentTarget);
92
+    const handleClose = () => setAnchorEl(null);
102 93
     const CerrarSession = () => auth.logout();
103 94
 
104 95
     return (
@@ -181,7 +172,7 @@ function DashboardContent() {
181 172
                                     'aria-labelledby': 'basic-button',
182 173
                                 }}
183 174
                             >
184
-                                <MenuItem onClick={ () => console.log('opcion 1') }>Profile</MenuItem>
175
+                                <MenuItem onClick={() => console.log('opcion 1') }>Profile</MenuItem>
185 176
                                 <MenuItem onClick={() => console.log('opcion 2')}>My account</MenuItem>
186 177
                                 <MenuItem onClick={CerrarSession}>Logout</MenuItem>
187 178
                             </Menu>
@@ -221,7 +212,7 @@ function DashboardContent() {
221 212
 
222 213
                     <Toolbar />
223 214
 
224
-                    <Container maxWidth="lg" sx={{ mt: 4, mb: 4 }}>
215
+                    <Container maxWidth="lg" sx={{ mt: 2 , mb: 2 }}>
225 216
                         <Outlet/>
226 217
                     </Container>
227 218
 

+ 31 - 0
psicoadmin/src/Components/Private.js

@@ -0,0 +1,31 @@
1
+import { Routes, Route } from "react-router-dom";
2
+import useAuth from '../Auth/useAuth';
3
+import React from 'react'
4
+
5
+function Not(){
6
+    <div>
7
+        <h1>404</h1>
8
+    </div>
9
+}
10
+
11
+function Loveisforever(){
12
+    <div>
13
+        <h1>404</h1>
14
+    </div>
15
+}
16
+
17
+export function Private ( props ) {
18
+
19
+    let auth = useAuth();
20
+
21
+    return(
22
+        <React.Fragment>
23
+            {
24
+                auth.isLogged() ? 
25
+                    ( <Route path="main" element={<Not/>}/> ) 
26
+                : ( <Route path="main" element={<Loveisforever/>}/>)        
27
+            }
28
+        </React.Fragment>
29
+    )
30
+
31
+}

+ 2 - 1
psicoadmin/src/Components/PrivateRoute.js

@@ -2,7 +2,8 @@ import { Navigate } from 'react-router-dom';
2 2
 import useAuth from '../Auth/useAuth';
3 3
 import React from 'react'
4 4
 
5
-export const PrivateRoute= ({ children}) => {
5
+export const PrivateRoute= (props) => {
6
+    console.log(props)
6 7
     let auth = useAuth();
7 8
     const isAuthenticated = auth.isLogged();
8 9
 

+ 29 - 10
psicoadmin/src/Components/Routes.js

@@ -1,4 +1,5 @@
1
-import { Routes, Route } from "react-router-dom";
1
+import React, {useEffect} from 'react'
2
+import { Routes, Route, Navigate, useNavigate } from "react-router-dom";
2 3
 
3 4
 import { Dashboard } from "./Dashboard";
4 5
 import { Login } from '../Pages/Login'
@@ -11,23 +12,41 @@ import { Resultados } from '../Pages/Resultados'
11 12
 import { Configuracion } from '../Pages/Configuracion'
12 13
 import { Historial } from '../Pages/Historial'
13 14
 
15
+import useAuth from '../Auth/useAuth'
14 16
 
15 17
 export default function MyRoutes () {
16 18
 
19
+    let auth = useAuth();
20
+    let navigate = useNavigate()
21
+
22
+    useEffect(() => {
23
+        if(!auth.isLogged(0)){
24
+            return navigate('/')
25
+        }
26
+    },[])
27
+    
28
+
17 29
     return(
18 30
         <Routes>
19 31
 
20 32
             <Route path="/" element={<Login/>}/>
21 33
 
22
-            <Route path="dashboard" element={<Dashboard/>}>
23
-                <Route path="home" element={<Home/>} />
24
-                <Route path="puestos" element={<Puestos/>} />
25
-                <Route path="contrasenas" element={<Contras/>} />
26
-                <Route path="expedientes" element={<Expedientes/>} />
27
-                <Route path="resultados" element={<Resultados/>} />
28
-                <Route path="configuraciones" element={<Configuracion/>} />
29
-                <Route path="historial" element={<Historial/>} />
30
-            </Route>
34
+            {
35
+                auth.isLogged() ? 
36
+                    (
37
+                        <Route path="dashboard" element={<Dashboard/>}>
38
+                            <Route index path="home" element={<Home/>} />
39
+                            <Route path="puestos" element={<Puestos/>} />
40
+                            <Route path="contrasenas" element={<Contras/>} />
41
+                            <Route path="expedientes" element={<Expedientes/>} />
42
+                            <Route path="resultados" element={<Resultados/>} />
43
+                            <Route path="configuraciones" element={<Configuracion/>} />
44
+                            <Route path="historial" element={<Historial/>} />
45
+                        </Route>
46
+                    )
47
+                : ( <Route path="dashboard" element={<Navigate to='/'/>} />)
48
+            }
49
+
31 50
 
32 51
             <Route path="*" element={<NotFound/>}/>
33 52
 

+ 8 - 1
psicoadmin/src/Components/listItems.js

@@ -26,6 +26,7 @@ import Collapse from '@mui/material/Collapse';
26 26
 import ExpandLess from '@mui/icons-material/ExpandLess';
27 27
 import ExpandMore from '@mui/icons-material/ExpandMore';
28 28
 import { useNavigate } from 'react-router-dom'
29
+import useAuth from '../Auth/useAuth'
29 30
 
30 31
 function SubMenuItem (props) {
31 32
 
@@ -58,10 +59,16 @@ function SubMenuItem (props) {
58 59
 function Item (props) {
59 60
 
60 61
     let navigate = useNavigate()
62
+    let auth = useAuth()
61 63
 
62 64
     function change (event){
63 65
         props.change(event, props.index)
64
-        console.log('naviate to', props.route )
66
+        console.log('is logged', auth.isLogged())
67
+
68
+        if(!auth.isLogged()){
69
+            return navigate('/')
70
+        }
71
+
65 72
         navigate(props.route)
66 73
     } 
67 74
 

+ 318 - 1
psicoadmin/src/Pages/Home.js

@@ -1,5 +1,322 @@
1 1
 export function Home() {
2 2
     return (
3
-        <h1>Bienvenido a pruebas psicometricas !!!</h1>
3
+        <section >
4
+            <div class="content-section">
5
+                <div class="main">
6
+                    <h1>Bienvenido de nuevo Grupo DIT</h1>
7
+                    <div class="panel_options">
8
+                        <div class="row">
9
+                            <div class="col-md-4">
10
+                                <div class="panel" >
11
+                                    <a href="#">
12
+                                        <div class="body_tabs">
13
+                                            <div class="row">
14
+                                                <div class="col-md-6">
15
+                                                    <h1>Contraseñas</h1>
16
+                                                </div>
17
+                                                <div class="col-md-6 content_info">
18
+                                                    <i class="fas fa-shield-alt"></i>
19
+                                                    <p>432</p>
20
+                                                </div>
21
+                                            </div>
22
+                                        </div>
23
+                                    </a>
24
+                                </div>
25
+                            </div>
26
+                            <div class="col-md-4">
27
+                                <div class="panel" >
28
+                                    <a href="#">
29
+                                        <div class="body_tabs">
30
+                                            <div class="row">
31
+                                                <div class="col-md-6">
32
+                                                    <h1>Expedientes</h1>
33
+                                                </div>
34
+                                                <div class="col-md-6 content_info">
35
+                                                    <i class="far fa-user"></i>
36
+                                                    <p>11982</p>
37
+                                                </div>
38
+                                            </div>
39
+                                        </div>
40
+                                    </a>
41
+                                </div>
42
+                            </div>
43
+                            <div class="col-md-4">
44
+                                <div class="panel" >
45
+                                    <a href="#">
46
+                                        <div class="body_tabs">
47
+                                            <div class="row">
48
+                                                <div class="col-md-6">
49
+                                                    <h1>Puestos</h1>
50
+                                                </div>
51
+                                                <div class="col-md-6 content_info">
52
+                                                    <i class="far fa-list-alt"></i>
53
+                                                    <p>359</p>
54
+                                                </div>
55
+                                            </div>
56
+                                        </div>
57
+                                    </a>
58
+                                </div>
59
+                            </div>
60
+                        </div>
61
+                    </div>
62
+                    <div class="historial_candidatos">
63
+                        <div class="row">
64
+                            <div class="col-md-8">
65
+                                <div class="body_historial">
66
+                                    <div class="header_historial">
67
+                                        <i class="far fa-clock"></i>
68
+                                        <p>HISTORIAL DE ACCESO DE CANDIDATOS</p>
69
+                                    </div>
70
+                                    <div class="content_historial">
71
+                                        <p>Últimos candidatos que han ingresado al sistema:</p>
72
+                                        <div class="cabeceras">
73
+                                            <div class="row">
74
+                                                <div class="col20">
75
+                                                    <p>Contraseña</p>
76
+                                                </div>
77
+                                                <div class="col20">
78
+                                                    <p>Puesto</p>
79
+                                                </div>
80
+                                                <div class="col20">
81
+                                                    <p>No. Identificación</p>
82
+                                                </div>
83
+                                                <div class="col20">
84
+                                                    <p>Fecha de aplicación</p>
85
+                                                </div>
86
+                                                <div class="col20">
87
+                                                    <p>Pruebas Pendientes</p>
88
+                                                </div>
89
+                                            </div>
90
+                                        </div>
91
+                                        <div class="data_candidato">
92
+                                            <div class="row">
93
+                                                <div class="col20">
94
+                                                    <p>repartidorPARMA</p>
95
+                                                </div>
96
+                                                <div class="col20">
97
+                                                    <p>Piloto Repartidor</p>
98
+                                                </div>
99
+                                                <div class="col20">
100
+                                                    <p><a href="#">1583266600501</a></p>
101
+                                                </div>
102
+                                                <div class="col20">
103
+                                                    <p>27/12/2018</p>
104
+                                                    <p>12:02 PM</p>
105
+                                                </div>
106
+                                                <div class="col20">
107
+                                                    <p>No</p>
108
+                                                </div>
109
+                                            </div>
110
+                                        </div>
111
+                                        <div class="data_candidato">
112
+                                            <div class="row">
113
+                                                <div class="col20">
114
+                                                    <p>repartidorPARMA</p>
115
+                                                </div>
116
+                                                <div class="col20">
117
+                                                    <p>Piloto Repartidor</p>
118
+                                                </div>
119
+                                                <div class="col20">
120
+                                                    <p><a href="#">1583266600501</a></p>
121
+                                                </div>
122
+                                                <div class="col20">
123
+                                                    <p>27/12/2018</p>
124
+                                                    <p>12:02 PM</p>
125
+                                                </div>
126
+                                                <div class="col20">
127
+                                                    <p>No</p>
128
+                                                </div>
129
+                                            </div>
130
+                                        </div>
131
+                                        <div class="data_candidato">
132
+                                            <div class="row">
133
+                                                <div class="col20">
134
+                                                    <p>repartidorPARMA</p>
135
+                                                </div>
136
+                                                <div class="col20">
137
+                                                    <p>Piloto Repartidor</p>
138
+                                                </div>
139
+                                                <div class="col20">
140
+                                                    <p><a href="#">1583266600501</a></p>
141
+                                                </div>
142
+                                                <div class="col20">
143
+                                                    <p>27/12/2018</p>
144
+                                                    <p>12:02 PM</p>
145
+                                                </div>
146
+                                                <div class="col20">
147
+                                                    <p>No</p>
148
+                                                </div>
149
+                                            </div>
150
+                                        </div>
151
+                                        <div class="data_candidato">
152
+                                            <div class="row">
153
+                                                <div class="col20">
154
+                                                    <p>repartidorPARMA</p>
155
+                                                </div>
156
+                                                <div class="col20">
157
+                                                    <p>Piloto Repartidor</p>
158
+                                                </div>
159
+                                                <div class="col20">
160
+                                                    <p><a href="#">1583266600501</a></p>
161
+                                                </div>
162
+                                                <div class="col20">
163
+                                                    <p>27/12/2018</p>
164
+                                                    <p>12:02 PM</p>
165
+                                                </div>
166
+                                                <div class="col20">
167
+                                                    <p>No</p>
168
+                                                </div>
169
+                                            </div>
170
+                                        </div>
171
+                                        <div class="data_candidato">
172
+                                            <div class="row">
173
+                                                <div class="col20">
174
+                                                    <p>repartidorPARMA</p>
175
+                                                </div>
176
+                                                <div class="col20">
177
+                                                    <p>Piloto Repartidor</p>
178
+                                                </div>
179
+                                                <div class="col20">
180
+                                                    <p><a href="#">1583266600501</a></p>
181
+                                                </div>
182
+                                                <div class="col20">
183
+                                                    <p>27/12/2018</p>
184
+                                                    <p>12:02 PM</p>
185
+                                                </div>
186
+                                                <div class="col20">
187
+                                                    <p>No</p>
188
+                                                </div>
189
+                                            </div>
190
+                                        </div>
191
+                                    </div>
192
+                                </div>
193
+                            </div>
194
+                            <div class="col-md-4">
195
+                                <div class="actividades_recientes">
196
+                                    <div class="cabecera_recently">
197
+                                        <i class="fas fa-plane-departure"></i>
198
+                                        <p>HISTORIAL DE ACTIVIDADES</p>
199
+                                    </div>
200
+                                    <div class="content_historial">
201
+                                        <p>Últimas actividades registradas</p>
202
+                                        <div class="data_actividad">
203
+                                            <div class="filtros_history">
204
+                                                <div class="row">
205
+                                                    <div class="col-md-4">
206
+                                                        <label>Contraseña</label>
207
+                                                        <input type="text" name="contraseña" placeholder="Contraseña"/>
208
+                                                    </div>
209
+                                                    <div class="col-md-4">
210
+                                                        <label>Módulo</label>
211
+                                                        <select>
212
+                                                            <option>Puestos</option>
213
+                                                            <option>Contraseñas</option>
214
+                                                            <option>Expedientes</option>
215
+                                                            <option>Resultados</option>
216
+                                                            <option>Pruebas</option>
217
+                                                            <option>Ajustes</option>
218
+                                                            <option>Membresías</option>
219
+                                                            <option>Sesiones</option>
220
+                                                        </select>
221
+                                                    </div>
222
+                                                    <div class="col-md-4">
223
+                                                        <label>Acción</label>
224
+                                                        <select>
225
+                                                            <option>Crear</option>
226
+                                                            <option>Editar</option>
227
+                                                            <option>Eliminar</option>
228
+                                                            <option>Desbloquear</option>
229
+                                                        </select>
230
+                                                    </div>
231
+                                                    <div class="col-md-4">
232
+                                                        <label>Fecha Inicio</label>
233
+                                                        <input id="custom-input-date" class="calendar" type="text" name="upload-release" placeholder="dd/mm/yyyy"/>
234
+                                                    </div>
235
+                                                    <div class="col-md-4">
236
+                                                        <label>Fecha Inicio</label>
237
+                                                        <input id="custom-input-date-2" class="calendar" type="text" name="upload-release" placeholder=""/>
238
+                                                    </div>
239
+                                                    <div class="col-md-4">
240
+                                                        <button class="buscar_filtros_history">Buscar</button>
241
+                                                    </div>
242
+                                                </div>
243
+                                            </div>
244
+                                            <div class="cabeceras_actividad">
245
+                                                <div class="row">
246
+                                                    <div class="col25">
247
+                                                        <p>Contraseña</p>
248
+                                                    </div>
249
+                                                    <div class="col25">
250
+                                                        <p>Descripción</p>
251
+                                                    </div>
252
+                                                    <div class="col25">
253
+                                                        <p>Módulo</p>
254
+                                                    </div>
255
+                                                    <div class="col25">
256
+                                                        <p>Fecha</p>
257
+                                                    </div>
258
+                                                </div>
259
+                                            </div>
260
+                                            <div class="body_history">
261
+                                                <div class="row">
262
+                                                    <div class="col25">
263
+                                                        <p>rcardona2510</p>
264
+                                                    </div>
265
+                                                    <div class="col25">
266
+                                                        <p>Creó la contraseña: pilotosanti</p>
267
+                                                    </div>
268
+                                                    <div class="col25">
269
+                                                        <p>Contraseñas</p>
270
+                                                    </div>
271
+                                                    <div class="col25">
272
+                                                        <p>21/12/18 8:25:52</p>
273
+                                                    </div>
274
+                                                </div> 
275
+                                            </div>
276
+                                            <div class="body_history">
277
+                                                <div class="row">
278
+                                                    <div class="col25">
279
+                                                        <p>rcardona2510</p>
280
+                                                    </div>
281
+                                                    <div class="col25">
282
+                                                        <p>Creó la contraseña: pilotosanti</p>
283
+                                                    </div>
284
+                                                    <div class="col25">
285
+                                                        <p>Contraseñas</p>
286
+                                                    </div>
287
+                                                    <div class="col25">
288
+                                                        <p>21/12/18 8:25:52</p>
289
+                                                    </div>
290
+                                                </div> 
291
+                                            </div>
292
+                                            <div class="body_history">
293
+                                                <div class="row">
294
+                                                    <div class="col25">
295
+                                                        <p>rcardona2510</p>
296
+                                                    </div>
297
+                                                    <div class="col25">
298
+                                                        <p>Creó la contraseña: pilotosanti</p>
299
+                                                    </div>
300
+                                                    <div class="col25">
301
+                                                        <p>Contraseñas</p>
302
+                                                    </div>
303
+                                                    <div class="col25">
304
+                                                        <p>21/12/18 8:25:52</p>
305
+                                                    </div>
306
+                                                </div> 
307
+                                            </div>
308
+                                            <div class="footer_history">
309
+                                                <a href="#" data-toggle="modal" data-target="#ayudaHistorial">Ayuda</a>
310
+                                            </div>
311
+                                        </div>
312
+                                    </div>
313
+                                </div>
314
+                            </div>
315
+                        </div>
316
+                    </div>
317
+                </div>
318
+            </div>
319
+        </section>
4 320
     )
321
+
5 322
 }

+ 1 - 2
psicoadmin/src/Pages/Login.js

@@ -11,8 +11,7 @@ export function Login () {
11 11
     function In () {
12 12
         auth.login({ name : 'edgar', id : 1 })
13 13
         console.log('is logged ? ',auth.isLogged())
14
-        navigate('/dashboard')
15
-        //{/* return <Redirect to="/dashboard"/> */}
14
+        return navigate('/dashboard')
16 15
     }
17 16
 
18 17
     return(

+ 5 - 0
psicoadmin/yarn.lock

@@ -7133,6 +7133,11 @@
7133 7133
     "import-local" "^3.0.2"
7134 7134
     "jest-cli" "^26.6.0"
7135 7135
 
7136
+"js-cookie@^3.0.1":
7137
+  "integrity" "sha512-+0rgsUXZu4ncpPxRL+lNEptWMOWl9etvPHc/koSRp6MPwpRYAhmk0dUG00J4bxVV3r9uUzfo24wW0knS07SKSw=="
7138
+  "resolved" "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.1.tgz"
7139
+  "version" "3.0.1"
7140
+
7136 7141
 "js-tokens@^3.0.0 || ^4.0.0", "js-tokens@^4.0.0":
7137 7142
   "integrity" "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
7138 7143
   "resolved" "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz"