refactor routes/auth interaction so that it always calls afterSignIn()
This commit is contained in:
parent
786d8ebfc6
commit
c4b91108a0
|
@ -30,17 +30,22 @@ Travis.reopen
|
||||||
@store = Travis.Store.create()
|
@store = Travis.Store.create()
|
||||||
@store.loadMany(Travis.Sponsor, Travis.SPONSORS)
|
@store.loadMany(Travis.Sponsor, Travis.SPONSORS)
|
||||||
|
|
||||||
@set('auth', Travis.Auth.create(app: this, endpoint: Travis.config.api_endpoint))
|
# @set('auth', Travis.Auth.create(app: this, endpoint: Travis.config.api_endpoint))
|
||||||
|
|
||||||
@slider = new Travis.Slider()
|
@slider = new Travis.Slider()
|
||||||
@pusher = new Travis.Pusher(Travis.config.pusher_key)
|
@pusher = new Travis.Pusher(Travis.config.pusher_key)
|
||||||
@tailing = new Travis.Tailing()
|
@tailing = new Travis.Tailing()
|
||||||
|
|
||||||
|
initAuth: (router, path) ->
|
||||||
|
auth = Travis.Auth.create(app: this, router: router, endpoint: Travis.config.api_endpoint)
|
||||||
|
@set('auth', auth)
|
||||||
|
auth.loadUser(path)
|
||||||
|
|
||||||
signIn: ->
|
signIn: ->
|
||||||
@get('auth').signIn()
|
@get('auth').signIn()
|
||||||
|
|
||||||
autoSignIn: ->
|
# autoSignIn: ->
|
||||||
@get('auth').autoSignIn()
|
# @get('auth').autoSignIn()
|
||||||
|
|
||||||
signOut: ->
|
signOut: ->
|
||||||
@get('auth').signOut()
|
@get('auth').signOut()
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
init: ->
|
init: ->
|
||||||
@iframe.appendTo('body')
|
@iframe.appendTo('body')
|
||||||
window.addEventListener('message', (e) => @receiveMessage(e))
|
window.addEventListener('message', (e) => @receiveMessage(e))
|
||||||
@loadUser()
|
# @loadUser()
|
||||||
|
|
||||||
accessToken: (->
|
accessToken: (->
|
||||||
sessionStorage.getItem('travis.token')
|
sessionStorage.getItem('travis.token')
|
||||||
|
@ -15,20 +15,21 @@
|
||||||
|
|
||||||
# if the user is in the session storage, we're using it. if we have a flag
|
# if the user is in the session storage, we're using it. if we have a flag
|
||||||
# for auto signin then we're trying to sign in.
|
# for auto signin then we're trying to sign in.
|
||||||
loadUser: ->
|
loadUser: (path)->
|
||||||
|
@storeAfterSignInPath(path)
|
||||||
if user = sessionStorage.getItem('travis.user')
|
if user = sessionStorage.getItem('travis.user')
|
||||||
@setData(user: JSON.parse(user))
|
@setData(user: JSON.parse(user))
|
||||||
else
|
else
|
||||||
@autoSignIn()
|
@autoSignIn()
|
||||||
|
|
||||||
# try signing in, but check later in case we have a timeout
|
# try signing in, but check later in case we have a timeout
|
||||||
signIn: ->
|
signIn: (path) ->
|
||||||
@set('state', 'signing-in')
|
@set('state', 'signing-in')
|
||||||
@trySignIn()
|
@trySignIn()
|
||||||
Ember.run.later(this, @checkSignIn.bind(this), @timeout)
|
Ember.run.later(this, @checkSignIn.bind(this), @timeout)
|
||||||
|
|
||||||
autoSignIn: ->
|
autoSignIn: (path) ->
|
||||||
@signIn() if localStorage.getItem('travis.auto_signin')
|
@signIn(path) if localStorage.getItem('travis.auto_signin')
|
||||||
|
|
||||||
signOut: ->
|
signOut: ->
|
||||||
localStorage.removeItem('travis.auto_signin')
|
localStorage.removeItem('travis.auto_signin')
|
||||||
|
@ -52,7 +53,10 @@
|
||||||
user = @storeUser(data.user) if data?.user
|
user = @storeUser(data.user) if data?.user
|
||||||
@set('state', if user then 'signed-in' else 'signed-out')
|
@set('state', if user then 'signed-in' else 'signed-out')
|
||||||
@set('user', if user then user else undefined)
|
@set('user', if user then user else undefined)
|
||||||
router.send('afterSignIn') if router = Travis.app?.get('router')
|
@afterSignIn()
|
||||||
|
|
||||||
|
afterSignIn: ->
|
||||||
|
@get('router').send('afterSignIn', @readAfterSignInPath())
|
||||||
|
|
||||||
storeToken: (token) ->
|
storeToken: (token) ->
|
||||||
sessionStorage.setItem('travis.token', token)
|
sessionStorage.setItem('travis.token', token)
|
||||||
|
@ -66,6 +70,14 @@
|
||||||
user.get('permissions')
|
user.get('permissions')
|
||||||
user
|
user
|
||||||
|
|
||||||
|
storeAfterSignInPath: (path) ->
|
||||||
|
sessionStorage.setItem('travis.after_signin_path', path)
|
||||||
|
|
||||||
|
readAfterSignInPath: ->
|
||||||
|
path = sessionStorage.getItem('travis.after_signin_path')
|
||||||
|
sessionStorage.removeItem('travis.after_signin_path')
|
||||||
|
path
|
||||||
|
|
||||||
receiveMessage: (event) ->
|
receiveMessage: (event) ->
|
||||||
if event.origin == @expectedOrigin()
|
if event.origin == @expectedOrigin()
|
||||||
event.data.user.token = event.data.token if event.data.token
|
event.data.user.token = event.data.token if event.data.token
|
||||||
|
|
|
@ -151,19 +151,18 @@ Travis.Router = Ember.Router.extend
|
||||||
afterSignOut: ->
|
afterSignOut: ->
|
||||||
@authorize('/')
|
@authorize('/')
|
||||||
|
|
||||||
authorize: (path) ->
|
|
||||||
if !@signedIn() && @needsAuth(path)
|
|
||||||
sessionStorage.setItem('travis.after_signin_path', path)
|
|
||||||
@transitionTo('root.auth')
|
|
||||||
Travis.app.autoSignIn()
|
|
||||||
else
|
|
||||||
@transitionTo('root')
|
|
||||||
@route(path)
|
|
||||||
|
|
||||||
loading: Ember.Route.extend
|
loading: Ember.Route.extend
|
||||||
routePath: (router, path) ->
|
routePath: (router, path) ->
|
||||||
router.saveLineNumberHash(path)
|
router.saveLineNumberHash(path)
|
||||||
router.authorize(path)
|
router.authorize(path)
|
||||||
|
router.auth = Travis.app.initAuth(router, path)
|
||||||
|
|
||||||
|
authorize: (path) ->
|
||||||
|
if !@signedIn() && @needsAuth(path)
|
||||||
|
@transitionTo('root.auth')
|
||||||
|
else
|
||||||
|
@transitionTo('root')
|
||||||
|
@route(path)
|
||||||
|
|
||||||
root: Ember.Route.extend
|
root: Ember.Route.extend
|
||||||
route: '/'
|
route: '/'
|
||||||
|
@ -178,9 +177,7 @@ Travis.Router = Ember.Router.extend
|
||||||
router.get('authLayoutController').connectOutlet('top', 'top')
|
router.get('authLayoutController').connectOutlet('top', 'top')
|
||||||
router.get('authLayoutController').connectOutlet('main', 'signin')
|
router.get('authLayoutController').connectOutlet('main', 'signin')
|
||||||
|
|
||||||
afterSignIn: (router) ->
|
afterSignIn: (router, path) ->
|
||||||
path = sessionStorage.getItem('travis.after_signin_path')
|
|
||||||
sessionStorage.removeItem('travis.after_signin_path')
|
|
||||||
router.route(path || '/')
|
router.route(path || '/')
|
||||||
|
|
||||||
stats: Ember.Route.extend
|
stats: Ember.Route.extend
|
||||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1 +1 @@
|
||||||
392e058e
|
0d94ee33
|
Loading…
Reference in New Issue
Block a user