mirror of
https://github.com/BoostIo/Boostnote
synced 2025-12-13 17:56:25 +00:00
add OnlyGuest mixin
This commit is contained in:
@@ -1,3 +1,4 @@
|
|||||||
|
/* global localStorage */
|
||||||
var React = require('react/addons')
|
var React = require('react/addons')
|
||||||
var ReactRouter = require('react-router')
|
var ReactRouter = require('react-router')
|
||||||
var Link = ReactRouter.Link
|
var Link = ReactRouter.Link
|
||||||
@@ -5,8 +6,10 @@ var Link = ReactRouter.Link
|
|||||||
var AuthStore = require('../Stores/AuthStore')
|
var AuthStore = require('../Stores/AuthStore')
|
||||||
var login = require('../Actions/login')
|
var login = require('../Actions/login')
|
||||||
|
|
||||||
|
var OnlyGuest = require('../Mixins/OnlyGuest')
|
||||||
|
|
||||||
module.exports = React.createClass({
|
module.exports = React.createClass({
|
||||||
mixins: [React.addons.LinkedStateMixin, ReactRouter.Navigation],
|
mixins: [React.addons.LinkedStateMixin, ReactRouter.Navigation, OnlyGuest],
|
||||||
getInitialState: function () {
|
getInitialState: function () {
|
||||||
return {
|
return {
|
||||||
email: '',
|
email: '',
|
||||||
|
|||||||
@@ -5,8 +5,10 @@ var Link = ReactRouter.Link
|
|||||||
var AuthStore = require('../Stores/AuthStore')
|
var AuthStore = require('../Stores/AuthStore')
|
||||||
var register = require('../Actions/register')
|
var register = require('../Actions/register')
|
||||||
|
|
||||||
|
var OnlyGuest = require('../Mixins/OnlyGuest')
|
||||||
|
|
||||||
module.exports = React.createClass({
|
module.exports = React.createClass({
|
||||||
mixins: [React.addons.LinkedStateMixin, ReactRouter.Navigation],
|
mixins: [React.addons.LinkedStateMixin, ReactRouter.Navigation, OnlyGuest],
|
||||||
getInitialState: function () {
|
getInitialState: function () {
|
||||||
return {
|
return {
|
||||||
email: '',
|
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(login, this.login)
|
||||||
this.listenTo(register, this.register)
|
this.listenTo(register, this.register)
|
||||||
},
|
},
|
||||||
|
// Reflux Store
|
||||||
login: function (input) {
|
login: function (input) {
|
||||||
request
|
request
|
||||||
.post('http://localhost:8000/auth/login')
|
.post('http://localhost:8000/auth/login')
|
||||||
.send(input)
|
.send(input)
|
||||||
.set('Accept', 'application/json')
|
.set('Accept', 'application/json')
|
||||||
.end(function (err, res) {
|
.end(function (err, res) {
|
||||||
if (err) console.error(err)
|
if (err) {
|
||||||
|
console.error(err)
|
||||||
|
this.trigger(null)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
var user = res.body.user
|
var user = res.body.user
|
||||||
localStorage.setItem('token', res.body.token)
|
localStorage.setItem('token', res.body.token)
|
||||||
|
localStorage.setItem('user', JSON.stringify(res.body.user))
|
||||||
|
|
||||||
this.trigger(user)
|
this.trigger(user)
|
||||||
}.bind(this))
|
}.bind(this))
|
||||||
},
|
},
|
||||||
@@ -28,11 +36,28 @@ var AuthStore = Reflux.createStore({
|
|||||||
.send(input)
|
.send(input)
|
||||||
.set('Accept', 'application/json')
|
.set('Accept', 'application/json')
|
||||||
.end(function (err, res) {
|
.end(function (err, res) {
|
||||||
if (err) console.error(err)
|
if (err) {
|
||||||
|
console.error(err)
|
||||||
|
this.trigger(null)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
var user = res.body.user
|
var user = res.body.user
|
||||||
localStorage.setItem('token', res.body.token)
|
localStorage.setItem('token', res.body.token)
|
||||||
|
localStorage.setItem('user', JSON.stringify(res.body.user))
|
||||||
|
|
||||||
this.trigger(user)
|
this.trigger(user)
|
||||||
}.bind(this))
|
}.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