]> git.immae.eu Git - perso/Immae/Projets/Cryptomonnaies/Cryptoportfolio/Front.git/commitdiff
Admin user token in frontend.
authorjloup <jloup@jloup.work>
Sun, 13 May 2018 21:07:26 +0000 (23:07 +0200)
committerjloup <jloup@jloup.work>
Sun, 13 May 2018 21:07:26 +0000 (23:07 +0200)
cmd/web/js/app.js
cmd/web/js/header_footer.jsx
cmd/web/js/signin.jsx
cmd/web/js/signup.jsx

index 878878d516146305265ca0ecaf97f47ada0ac855..475605728c587bf02f7f52a6ca521ae239e33572 100644 (file)
@@ -32,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');
 };
 
@@ -56,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');
 };
 
@@ -98,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':
@@ -119,9 +126,9 @@ App.mount = function(app) {
       'div',
       {className: 'container'},
       [
-       React.createElement(Header, {key: 'header', isLoggedIn: App.isUserSignedIn()}),
+       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()})
+       React.createElement(Footer, {key: 'footer', isLoggedIn: App.isUserSignedIn(), isAdmin: App.isUserAdmin()})
       ],
   );
 
index f11ed06ea2d4589b7467b9d8a294dbbb39f10c49..3e87c1ed553351bdd98a346b2a11a911c3f0a486 100644 (file)
@@ -12,6 +12,12 @@ class MyAccount extends React.Component {
   }
 }
 
+class Admin extends React.Component {
+  render = () => {
+    return <a href="/admin"><u>Admin</u></a>;
+  }
+}
+
 class Logo extends React.Component {
   render() {
     return <div id="logo" className="w-100 h-100 align-self-center">
@@ -27,6 +33,10 @@ class Footer extends React.Component {
       elements = [];
     }
 
+    if (this.props.isAdmin === true) {
+      elements = elements.concat(<Admin />);
+    }
+
     if (this.props.isLoggedIn === true) {
       elements = elements.concat(<MyAccount />);
       elements = elements.concat(<Signout />);
@@ -58,6 +68,10 @@ class Header extends React.Component {
       elements = [];
     }
 
+    if (this.props.isAdmin === true) {
+      elements = elements.concat(<Admin />);
+    }
+
     if (this.props.isLoggedIn === true) {
       elements = elements.concat(<MyAccount />);
       elements = elements.concat(<Signout />);
index e0e0f1de8cfc4a962adb8eb6107c583debf15a1b..5b3b661f4a7be7373e60bf29e30201e5968b343c 100644 (file)
@@ -18,7 +18,7 @@ class SigninForm extends React.Component {
       }
 
       this.displayMessage('OK', true);
-      this.props.onSuccess(data.token);
+      this.props.onSuccess(data.token, data.isAdmin);
 
     }.bind(this));
     e.preventDefault();
index b7d92875e81bb205395f34c8bc8820e3cb1a8622..08509e82845281bd500c3ee66cf8dd726803a8bf 100644 (file)
@@ -24,7 +24,7 @@ class SignupForm extends React.Component {
       }
 
       this.displayMessage('Thank You. Your account is being confirmed. Check your mailbox soon', true);
-      this.props.onSuccess(data.token);
+      this.props.onSuccess(data.token, data.isAdmin);
 
     }.bind(this)
 );