From baaa82ed34130a3ded0e269c16f703fd7ac13268 Mon Sep 17 00:00:00 2001 From: Scott Tolksdorf Date: Mon, 9 Jan 2017 17:32:46 -0500 Subject: [PATCH] Added in a logout to the user page --- client/homebrew/homebrew.jsx | 17 +++++++++---- client/homebrew/navbar/account.navitem.jsx | 22 ++++++++++------- client/homebrew/pages/userPage/userPage.jsx | 2 +- server/brew.data.js | 1 + shared/homebrewery/account.actions.js | 20 +++++++++++++++ shared/homebrewery/account.store.js | 27 +++++++++++++++++++++ 6 files changed, 74 insertions(+), 15 deletions(-) create mode 100644 shared/homebrewery/account.actions.js create mode 100644 shared/homebrewery/account.store.js diff --git a/client/homebrew/homebrew.jsx b/client/homebrew/homebrew.jsx index f6233cae5..19e809300 100644 --- a/client/homebrew/homebrew.jsx +++ b/client/homebrew/homebrew.jsx @@ -3,11 +3,12 @@ const _ = require('lodash'); const cx = require('classnames'); const CreateRouter = require('pico-router').createRouter; -const Actions = require('homebrewery/brew.actions.js'); +const BrewActions = require('homebrewery/brew.actions.js'); +const AccountActions = require('homebrewery/account.actions.js'); const HomePage = require('./pages/homePage/homePage.jsx'); const EditPage = require('./pages/editPage/editPage.jsx'); -//const UserPage = require('./pages/userPage/userPage.jsx'); +const UserPage = require('./pages/userPage/userPage.jsx'); const SharePage = require('./pages/sharePage/sharePage.jsx'); const NewPage = require('./pages/newPage/newPage.jsx'); //const ErrorPage = require('./pages/errorPage/errorPage.jsx'); @@ -39,19 +40,25 @@ const Homebrew = React.createClass({ //console.log(mapObject(['version', 'brew', 'account'], this.props)); - Actions.init(mapObject(['version', 'brew', 'account'], this.props)); + BrewActions.init({ + version : this.props.version, + brew : this.props.brew + }); + AccountActions.init({ + user : this.props.user, + loginPath : this.props.loginPath + }); Router = CreateRouter({ '/edit/:id' : , '/share/:id' : , - /* '/user/:username' : (args) => { return - },*/ + }, '/print/:id' : (args, query) => { return ; }, diff --git a/client/homebrew/navbar/account.navitem.jsx b/client/homebrew/navbar/account.navitem.jsx index 6b33f90a2..d0d0d2045 100644 --- a/client/homebrew/navbar/account.navitem.jsx +++ b/client/homebrew/navbar/account.navitem.jsx @@ -1,19 +1,23 @@ const React = require('react'); const Nav = require('naturalcrit/nav/nav.jsx'); +const Store = require('homebrewery/account.store.js'); +const Actions = require('homebrewery/account.actions.js'); + + module.exports = function(props){ - if(global.account){ - return - {global.account.username} + const user = Store.getUser(); + if(user && user == props.userPage){ + return + logout } - let url = ''; - /* - if(typeof window !== 'undefined'){ - url = window.location.href + if(user){ + return + {user} + } - */ - return + return login }; \ No newline at end of file diff --git a/client/homebrew/pages/userPage/userPage.jsx b/client/homebrew/pages/userPage/userPage.jsx index 6d583e90a..b6bdbeffc 100644 --- a/client/homebrew/pages/userPage/userPage.jsx +++ b/client/homebrew/pages/userPage/userPage.jsx @@ -57,7 +57,7 @@ const UserPage = React.createClass({ - + diff --git a/server/brew.data.js b/server/brew.data.js index 2eeae0078..a6408853e 100644 --- a/server/brew.data.js +++ b/server/brew.data.js @@ -109,6 +109,7 @@ const BrewData = { //defaults with page and count //returns a non-text version of brews //assume sanatized ? + return Promise.resolve([]); }, diff --git a/shared/homebrewery/account.actions.js b/shared/homebrewery/account.actions.js new file mode 100644 index 000000000..490567339 --- /dev/null +++ b/shared/homebrewery/account.actions.js @@ -0,0 +1,20 @@ +const Store = require('./account.store.js'); + +const Actions = { + init : (initState) => { + Store.init(initState); + }, + login : ()=>{ + console.log('login'); + //redirect to the login path and add the redirect + + }, + logout : ()=>{ + document.cookie = 'nc_session=;expires=Thu, 01 Jan 1970 00:00:01 GMT;path=/;domain=.naturalcrit.com'; + //Remove local dev cookies too + document.cookie = 'nc_session=;expires=Thu, 01 Jan 1970 00:00:01 GMT;path=/;'; + window.location ='/'; + } +}; + +module.exports = Actions; \ No newline at end of file diff --git a/shared/homebrewery/account.store.js b/shared/homebrewery/account.store.js new file mode 100644 index 000000000..3287e8515 --- /dev/null +++ b/shared/homebrewery/account.store.js @@ -0,0 +1,27 @@ +const _ = require('lodash'); +const flux = require('pico-flux'); + + +let State = { + loginPath : '', + user : undefined, +}; + +const Store = {}; //Maybe Flux it later? + + +Store.init = (state)=>{ + State = _.merge({}, State, state); +}; +Store.getLoginPath = ()=>{ + let path = State.loginPath; + if(typeof window !== 'undefined'){ + console.log('yo here'); + } + return path; +}; +Store.getUser = ()=>{ + return State.user; +}; + +module.exports = Store; \ No newline at end of file