mirror of
https://github.com/BoostIo/Boostnote
synced 2025-12-13 09:46:22 +00:00
add OnlyGuest mixin
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
/* global localStorage */
|
||||
var React = require('react/addons')
|
||||
var ReactRouter = require('react-router')
|
||||
var Link = ReactRouter.Link
|
||||
@@ -5,8 +6,10 @@ var Link = ReactRouter.Link
|
||||
var AuthStore = require('../Stores/AuthStore')
|
||||
var login = require('../Actions/login')
|
||||
|
||||
var OnlyGuest = require('../Mixins/OnlyGuest')
|
||||
|
||||
module.exports = React.createClass({
|
||||
mixins: [React.addons.LinkedStateMixin, ReactRouter.Navigation],
|
||||
mixins: [React.addons.LinkedStateMixin, ReactRouter.Navigation, OnlyGuest],
|
||||
getInitialState: function () {
|
||||
return {
|
||||
email: '',
|
||||
|
||||
@@ -5,8 +5,10 @@ var Link = ReactRouter.Link
|
||||
var AuthStore = require('../Stores/AuthStore')
|
||||
var register = require('../Actions/register')
|
||||
|
||||
var OnlyGuest = require('../Mixins/OnlyGuest')
|
||||
|
||||
module.exports = React.createClass({
|
||||
mixins: [React.addons.LinkedStateMixin, ReactRouter.Navigation],
|
||||
mixins: [React.addons.LinkedStateMixin, ReactRouter.Navigation, OnlyGuest],
|
||||
getInitialState: function () {
|
||||
return {
|
||||
email: '',
|
||||
|
||||
18
browser/main/Mixins/OnlyGuest.js
Normal file
18
browser/main/Mixins/OnlyGuest.js
Normal file
@@ -0,0 +1,18 @@
|
||||
var AuthStore = require('../Stores/AuthStore')
|
||||
|
||||
var OnlyGuest = {
|
||||
componentDidMount: function () {
|
||||
if (AuthStore.check()) {
|
||||
var user = AuthStore.getUser()
|
||||
console.log(user)
|
||||
var planet = user.Planets.length > 0 ? user.Planets[0] : null
|
||||
if (planet == null) {
|
||||
this.transitionTo('user', {userName: user.name})
|
||||
return
|
||||
}
|
||||
this.transitionTo('dashboard', {userName: user.name, planetName: planet.name})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = OnlyGuest
|
||||
@@ -1,40 +0,0 @@
|
||||
/* global localStorage */
|
||||
var Auth = {}
|
||||
|
||||
var currentUser = null
|
||||
Auth.attempt = function (params) {
|
||||
return new Promise(function (resolve, reject) {
|
||||
var token = 'some token'
|
||||
var user = {
|
||||
name: 'testcat',
|
||||
email: 'testcat@example.com',
|
||||
profileName: 'Test Cat'
|
||||
}
|
||||
localStorage.setItem('token', token)
|
||||
|
||||
resolve(user)
|
||||
})
|
||||
}
|
||||
|
||||
Auth.register = function (params) {
|
||||
return new Promise(function (resolve, reject) {
|
||||
var token = 'some token'
|
||||
var user = {
|
||||
name: 'testcat',
|
||||
email: 'testcat@example.com',
|
||||
profileName: 'Test Cat'
|
||||
}
|
||||
localStorage.setItem('token', token)
|
||||
|
||||
resolve(user)
|
||||
})
|
||||
}
|
||||
|
||||
Auth.getUser = function () {
|
||||
return new Promise(function (resolve, reject) {
|
||||
|
||||
resolve(currentUser)
|
||||
})
|
||||
}
|
||||
|
||||
module.exports = Auth
|
||||
@@ -10,15 +10,23 @@ var AuthStore = Reflux.createStore({
|
||||
this.listenTo(login, this.login)
|
||||
this.listenTo(register, this.register)
|
||||
},
|
||||
// Reflux Store
|
||||
login: function (input) {
|
||||
request
|
||||
.post('http://localhost:8000/auth/login')
|
||||
.send(input)
|
||||
.set('Accept', 'application/json')
|
||||
.end(function (err, res) {
|
||||
if (err) console.error(err)
|
||||
if (err) {
|
||||
console.error(err)
|
||||
this.trigger(null)
|
||||
return
|
||||
}
|
||||
|
||||
var user = res.body.user
|
||||
localStorage.setItem('token', res.body.token)
|
||||
localStorage.setItem('user', JSON.stringify(res.body.user))
|
||||
|
||||
this.trigger(user)
|
||||
}.bind(this))
|
||||
},
|
||||
@@ -28,11 +36,28 @@ var AuthStore = Reflux.createStore({
|
||||
.send(input)
|
||||
.set('Accept', 'application/json')
|
||||
.end(function (err, res) {
|
||||
if (err) console.error(err)
|
||||
if (err) {
|
||||
console.error(err)
|
||||
this.trigger(null)
|
||||
return
|
||||
}
|
||||
|
||||
var user = res.body.user
|
||||
localStorage.setItem('token', res.body.token)
|
||||
localStorage.setItem('user', JSON.stringify(res.body.user))
|
||||
|
||||
this.trigger(user)
|
||||
}.bind(this))
|
||||
},
|
||||
// Methods
|
||||
check: function () {
|
||||
if (localStorage.getItem('token')) return true
|
||||
return false
|
||||
},
|
||||
getUser: function () {
|
||||
var userJSON = localStorage.getItem('user')
|
||||
if (userJSON == null) return null
|
||||
return JSON.parse(userJSON)
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
Reference in New Issue
Block a user