Browse Source

Cookie base auth

amenpunk 3 years ago
parent
commit
91de82edb1

+ 14 - 0
psicoadmin/package-lock.json

16
         "@testing-library/react": "^11.1.0",
16
         "@testing-library/react": "^11.1.0",
17
         "@testing-library/user-event": "^12.1.10",
17
         "@testing-library/user-event": "^12.1.10",
18
         "bootstrap": "^5.1.3",
18
         "bootstrap": "^5.1.3",
19
+        "js-cookie": "^3.0.1",
19
         "react": "^17.0.2",
20
         "react": "^17.0.2",
20
         "react-bootstrap": "^2.0.2",
21
         "react-bootstrap": "^2.0.2",
21
         "react-dom": "^17.0.2",
22
         "react-dom": "^17.0.2",
12075
         "node": ">= 10.13.0"
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
     "node_modules/js-tokens": {
12087
     "node_modules/js-tokens": {
12079
       "version": "4.0.0",
12088
       "version": "4.0.0",
12080
       "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
12089
       "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
29705
         "supports-color": "^7.0.0"
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
     "js-tokens": {
29722
     "js-tokens": {
29709
       "version": "4.0.0",
29723
       "version": "4.0.0",
29710
       "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
29724
       "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",

+ 1 - 0
psicoadmin/package.json

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

+ 26 - 21
psicoadmin/src/App.css

1
 .App {
1
 .App {
2
-  text-align: center;
2
+    text-align: center;
3
 }
3
 }
4
 
4
 
5
 .App-logo {
5
 .App-logo {
6
-  height: 40vmin;
7
-  pointer-events: none;
6
+    height: 40vmin;
7
+    pointer-events: none;
8
 }
8
 }
9
 
9
 
10
 @media (prefers-reduced-motion: no-preference) {
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
 .App-header {
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
 .App-link {
27
 .App-link {
28
-  color: #61dafb;
28
+    color: #61dafb;
29
 }
29
 }
30
 
30
 
31
 @keyframes App-logo-spin {
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
 .Mui-selected{
40
 .Mui-selected{
62
     line-height: 30px !important;
62
     line-height: 30px !important;
63
     font-size : 12px !important;
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
 import { BrowserRouter as Router } from "react-router-dom";
5
 import { BrowserRouter as Router } from "react-router-dom";
6
 import { Container } from 'react-bootstrap'
6
 import { Container } from 'react-bootstrap'
7
 import { AuthProvider } from './Auth/AuthProvider'
7
 import { AuthProvider } from './Auth/AuthProvider'
8
+import { useEffect } from 'react'
9
+import  useAuth from './Auth/useAuth'
8
 
10
 
9
 import Routes from './Components/Routes'
11
 import Routes from './Components/Routes'
10
 // import { Header } from './Components/Header';
12
 // import { Header } from './Components/Header';

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

1
 import React from 'react'
1
 import React from 'react'
2
+import Cookies from 'js-cookie'
3
+
2
 export const AuthContext = React.createContext();
4
 export const AuthContext = React.createContext();
3
 
5
 
4
 export function AuthProvider ({ children }){
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
     const context = {
10
     const context = {
9
         user,
11
         user,
10
         login: () => {
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
         logout : () => {
18
         logout : () => {
16
-            setUser(null)
17
-            localStorage.setItem('user', JSON.stringify({ }) )
19
+            Cookies.set('user', undefined)
20
+            setUser(undefined)
18
         },
21
         },
19
         isLogged : () => {
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
 import ProfilePicture from '../Images/man.png';
29
 import ProfilePicture from '../Images/man.png';
30
 
30
 
31
 import useAuth from '../Auth/useAuth';
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
 const drawerWidth = 240;
35
 const drawerWidth = 240;
81
 const mdTheme = createTheme();
81
 const mdTheme = createTheme();
82
 
82
 
83
 function DashboardContent() {
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
     const [anchorEl, setAnchorEl] = React.useState(null);
89
     const [anchorEl, setAnchorEl] = React.useState(null);
93
     const open_profile = Boolean(anchorEl);
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
     const CerrarSession = () => auth.logout();
93
     const CerrarSession = () => auth.logout();
103
 
94
 
104
     return (
95
     return (
181
                                     'aria-labelledby': 'basic-button',
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
                                 <MenuItem onClick={() => console.log('opcion 2')}>My account</MenuItem>
176
                                 <MenuItem onClick={() => console.log('opcion 2')}>My account</MenuItem>
186
                                 <MenuItem onClick={CerrarSession}>Logout</MenuItem>
177
                                 <MenuItem onClick={CerrarSession}>Logout</MenuItem>
187
                             </Menu>
178
                             </Menu>
221
 
212
 
222
                     <Toolbar />
213
                     <Toolbar />
223
 
214
 
224
-                    <Container maxWidth="lg" sx={{ mt: 4, mb: 4 }}>
215
+                    <Container maxWidth="lg" sx={{ mt: 2 , mb: 2 }}>
225
                         <Outlet/>
216
                         <Outlet/>
226
                     </Container>
217
                     </Container>
227
 
218
 

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

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
 import useAuth from '../Auth/useAuth';
2
 import useAuth from '../Auth/useAuth';
3
 import React from 'react'
3
 import React from 'react'
4
 
4
 
5
-export const PrivateRoute= ({ children}) => {
5
+export const PrivateRoute= (props) => {
6
+    console.log(props)
6
     let auth = useAuth();
7
     let auth = useAuth();
7
     const isAuthenticated = auth.isLogged();
8
     const isAuthenticated = auth.isLogged();
8
 
9
 

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

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
 import { Dashboard } from "./Dashboard";
4
 import { Dashboard } from "./Dashboard";
4
 import { Login } from '../Pages/Login'
5
 import { Login } from '../Pages/Login'
11
 import { Configuracion } from '../Pages/Configuracion'
12
 import { Configuracion } from '../Pages/Configuracion'
12
 import { Historial } from '../Pages/Historial'
13
 import { Historial } from '../Pages/Historial'
13
 
14
 
15
+import useAuth from '../Auth/useAuth'
14
 
16
 
15
 export default function MyRoutes () {
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
     return(
29
     return(
18
         <Routes>
30
         <Routes>
19
 
31
 
20
             <Route path="/" element={<Login/>}/>
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
             <Route path="*" element={<NotFound/>}/>
51
             <Route path="*" element={<NotFound/>}/>
33
 
52
 

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

26
 import ExpandLess from '@mui/icons-material/ExpandLess';
26
 import ExpandLess from '@mui/icons-material/ExpandLess';
27
 import ExpandMore from '@mui/icons-material/ExpandMore';
27
 import ExpandMore from '@mui/icons-material/ExpandMore';
28
 import { useNavigate } from 'react-router-dom'
28
 import { useNavigate } from 'react-router-dom'
29
+import useAuth from '../Auth/useAuth'
29
 
30
 
30
 function SubMenuItem (props) {
31
 function SubMenuItem (props) {
31
 
32
 
58
 function Item (props) {
59
 function Item (props) {
59
 
60
 
60
     let navigate = useNavigate()
61
     let navigate = useNavigate()
62
+    let auth = useAuth()
61
 
63
 
62
     function change (event){
64
     function change (event){
63
         props.change(event, props.index)
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
         navigate(props.route)
72
         navigate(props.route)
66
     } 
73
     } 
67
 
74
 

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

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

+ 5 - 0
psicoadmin/yarn.lock

7133
     "import-local" "^3.0.2"
7133
     "import-local" "^3.0.2"
7134
     "jest-cli" "^26.6.0"
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
 "js-tokens@^3.0.0 || ^4.0.0", "js-tokens@^4.0.0":
7141
 "js-tokens@^3.0.0 || ^4.0.0", "js-tokens@^4.0.0":
7137
   "integrity" "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
7142
   "integrity" "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
7138
   "resolved" "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz"
7143
   "resolved" "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz"