Sign user out in the route after failed user request

Sign out should occur in the route after the request is performed.
Additionally, the error from refreshUserData needs to be handled in
route in order to not propagate to parent routes.
This commit is contained in:
Piotr Sarnacki 2015-07-16 12:02:57 +02:00
parent 76ca9c1eaa
commit f4b9a3bbe2
2 changed files with 7 additions and 6 deletions

View File

@ -8,7 +8,8 @@ Route = TravisRoute.extend BuildFaviconMixin,
beforeModel: -> beforeModel: ->
@_super.apply(this, arguments) @_super.apply(this, arguments)
@get('auth').refreshUserData() @get('auth').refreshUserData().then (->), =>
@get('auth').signOut()
renderTemplate: -> renderTemplate: ->
if @get('config').pro if @get('config').pro

View File

@ -87,8 +87,8 @@ Auth = Ember.Object.extend
user = data.user user = data.user
if user if user
Ajax.get "/users/#{user.id}", (data) => Ajax.get("/users/#{user.id}").then (data) =>
if data.user.correct_scopes if data.user.correct_scopes && false
userRecord = @loadUser(data.user) userRecord = @loadUser(data.user)
userRecord.get('permissions') userRecord.get('permissions')
# if user is still signed in, update saved data # if user is still signed in, update saved data
@ -98,9 +98,9 @@ Auth = Ember.Object.extend
@storeData(data, @storage) @storeData(data, @storage)
Travis.trigger('user:refreshed', data.user) Travis.trigger('user:refreshed', data.user)
else else
@signOut() return Ember.RSVP.Promise.reject()
, (status, xhr) => else
@signOut() if status == 403 || status == 404 return Ember.RSVP.Promise.resolve()
signedIn: (-> signedIn: (->
@get('state') == 'signed-in' @get('state') == 'signed-in'