X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=cmd%2Fweb%2Fjs%2Fapp.js;h=475605728c587bf02f7f52a6ca521ae239e33572;hb=6bf174a95ba0f71abf25397316fc101405381cdf;hp=5ac433582c29f5421690bd6d581f95fba5752d0e;hpb=1fc43bfa508b3579ca5a8944f8fc3e84cacee500;p=perso%2FImmae%2FProjets%2FCryptomonnaies%2FCryptoportfolio%2FFront.git diff --git a/cmd/web/js/app.js b/cmd/web/js/app.js index 5ac4335..4756057 100644 --- a/cmd/web/js/app.js +++ b/cmd/web/js/app.js @@ -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'));