Always refresh a user record when page is loaded
This commit is contained in:
parent
fb4b39f8af
commit
78580c1e76
|
@ -5,6 +5,11 @@
|
||||||
Route = TravisRoute.extend BuildFaviconMixin,
|
Route = TravisRoute.extend BuildFaviconMixin,
|
||||||
needsAuth: false
|
needsAuth: false
|
||||||
|
|
||||||
|
beforeModel: ->
|
||||||
|
@_super.apply(this, arguments)
|
||||||
|
|
||||||
|
@get('auth').refreshUserData()
|
||||||
|
|
||||||
renderTemplate: ->
|
renderTemplate: ->
|
||||||
if @get('config').pro
|
if @get('config').pro
|
||||||
$('body').addClass('pro')
|
$('body').addClass('pro')
|
||||||
|
|
|
@ -79,18 +79,26 @@ Auth = Ember.Object.extend
|
||||||
@set('state', 'signed-in')
|
@set('state', 'signed-in')
|
||||||
Travis.trigger('user:signed_in', data.user)
|
Travis.trigger('user:signed_in', data.user)
|
||||||
@sendToApp('afterSignIn')
|
@sendToApp('afterSignIn')
|
||||||
@refreshUserData(data.user)
|
|
||||||
|
|
||||||
refreshUserData: (user) ->
|
refreshUserData: (user) ->
|
||||||
Ajax.get "/users/#{user.id}", (data) =>
|
unless user
|
||||||
@store.pushPayload(users: [data.user])
|
if data = @userDataFrom(@sessionStorage) || @userDataFrom(@storage)
|
||||||
# if user is still signed in, update saved data
|
user = data.user
|
||||||
if @get('signedIn')
|
|
||||||
data.user.token = user.token
|
if user
|
||||||
@storeData(data, @sessionStorage)
|
Ajax.get "/users/#{user.id}", (data) =>
|
||||||
@storeData(data, @storage)
|
if data.user.correct_scopes
|
||||||
, (status, xhr) =>
|
userRecord = @loadUser(data.user)
|
||||||
@signOut() if status == 403
|
userRecord.get('permissions')
|
||||||
|
# if user is still signed in, update saved data
|
||||||
|
if @get('signedIn')
|
||||||
|
data.user.token = user.token
|
||||||
|
@storeData(data, @sessionStorage)
|
||||||
|
@storeData(data, @storage)
|
||||||
|
else
|
||||||
|
@signOut()
|
||||||
|
, (status, xhr) =>
|
||||||
|
@signOut() if status == 403
|
||||||
|
|
||||||
signedIn: (->
|
signedIn: (->
|
||||||
@get('state') == 'signed-in'
|
@get('state') == 'signed-in'
|
||||||
|
@ -110,9 +118,7 @@ Auth = Ember.Object.extend
|
||||||
|
|
||||||
loadUser: (user) ->
|
loadUser: (user) ->
|
||||||
@store.pushPayload(users: [user])
|
@store.pushPayload(users: [user])
|
||||||
user = @store.recordForId('user', user.id)
|
@store.recordForId('user', user.id)
|
||||||
user.get('permissions')
|
|
||||||
user
|
|
||||||
|
|
||||||
receiveMessage: (event) ->
|
receiveMessage: (event) ->
|
||||||
if event.origin == @expectedOrigin()
|
if event.origin == @expectedOrigin()
|
||||||
|
@ -134,9 +140,9 @@ Auth = Ember.Object.extend
|
||||||
# as a direct response to either manual sign in or autoSignIn (right now
|
# as a direct response to either manual sign in or autoSignIn (right now
|
||||||
# we treat both cases behave the same in terms of sent events which I think
|
# we treat both cases behave the same in terms of sent events which I think
|
||||||
# makes it more complicated than it should be).
|
# makes it more complicated than it should be).
|
||||||
controller = @container.lookup('controller:auth')
|
router = @container.lookup('router:main')
|
||||||
try
|
try
|
||||||
controller.send(name)
|
router.send(name)
|
||||||
catch error
|
catch error
|
||||||
unless error.message =~ /Can't trigger action/
|
unless error.message =~ /Can't trigger action/
|
||||||
throw error
|
throw error
|
||||||
|
|
Loading…
Reference in New Issue
Block a user