]> git.immae.eu Git - perso/Immae/Projets/Cryptomonnaies/Cryptoportfolio/Front.git/blobdiff - cmd/web/js/app.js
Admin user token in frontend.
[perso/Immae/Projets/Cryptomonnaies/Cryptoportfolio/Front.git] / cmd / web / js / app.js
index 5ac433582c29f5421690bd6d581f95fba5752d0e..475605728c587bf02f7f52a6ca521ae239e33572 100644 (file)
@@ -4,9 +4,10 @@ import cookies from './cookies.js';
 import page from 'page';
 import React from 'react';
 import ReactDOM from 'react-dom';
+import {Header, Footer} from './header_footer.js';
 
 var App = {};
-var cookieExpire = 60 * 60 * 7;
+var cookieExpire = 60 * 60 * 24 * 7;
 
 App.errorCodeToMessage = function(code) {
   switch (code) {
@@ -31,17 +32,22 @@ App.isUserSignedIn = function() {
   return cookies.hasItem('jwt');
 };
 
+App.isUserAdmin = function() {
+  return cookies.hasItem('isAdmin') && cookies.getItem('isAdmin') === 'true';
+};
+
 App.getUserToken = function() {
   return cookies.getItem('jwt');
 };
 
-App.onUserSignIn = function(token) {
+App.onUserSignIn = function(token, isAdmin) {
   if (!token || token === '') {
     page('/signin');
     return;
   }
 
   cookies.setItem('jwt', token, cookieExpire);
+  cookies.setItem('isAdmin', isAdmin, cookieExpire);
   page('/me');
 };
 
@@ -55,13 +61,14 @@ App.onUserValidateOtp = function(token) {
   page('/me');
 };
 
-App.onUserSignUp = function(token) {
+App.onUserSignUp = function(token, isAdmin) {
   if (!token || token === '') {
     page('/signin');
     return;
   }
 
   cookies.setItem('jwt', token, cookieExpire);
+  cookies.setItem('isAdmin', isAdmin, cookieExpire);
   page('/not_confirmed');
 };
 
@@ -97,6 +104,7 @@ App.onUserNotAuthorized = function(httpCode, apiCode) {
   switch (apiCode) {
     case 'not_authorized':
       cookies.removeItem('jwt');
+      cookies.removeItem('isAdmin');
       page('/signin');
       return false;
     case 'otp_not_setup':
@@ -117,7 +125,11 @@ App.mount = function(app) {
   var root = React.createElement(
       'div',
       {className: 'container'},
-      app
+      [
+       React.createElement(Header, {key: 'header', isLoggedIn: App.isUserSignedIn(), isAdmin: App.isUserAdmin()}),
+       React.createElement(React.Fragment, {key: 'app'}, app),
+       React.createElement(Footer, {key: 'footer', isLoggedIn: App.isUserSignedIn(), isAdmin: App.isUserAdmin()})
+      ],
   );
 
   ReactDOM.unmountComponentAtNode(document.getElementById('app'));