From f4b9a3bbe234c8f0c43c482cff38e2a80bb75988 Mon Sep 17 00:00:00 2001 From: Piotr Sarnacki Date: Thu, 16 Jul 2015 12:02:57 +0200 Subject: [PATCH] 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. --- app/routes/application.coffee | 3 ++- app/utils/auth.coffee | 10 +++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/app/routes/application.coffee b/app/routes/application.coffee index c17107e2..64e9196d 100644 --- a/app/routes/application.coffee +++ b/app/routes/application.coffee @@ -8,7 +8,8 @@ Route = TravisRoute.extend BuildFaviconMixin, beforeModel: -> @_super.apply(this, arguments) - @get('auth').refreshUserData() + @get('auth').refreshUserData().then (->), => + @get('auth').signOut() renderTemplate: -> if @get('config').pro diff --git a/app/utils/auth.coffee b/app/utils/auth.coffee index 3b756774..1ea5fad5 100644 --- a/app/utils/auth.coffee +++ b/app/utils/auth.coffee @@ -87,8 +87,8 @@ Auth = Ember.Object.extend user = data.user if user - Ajax.get "/users/#{user.id}", (data) => - if data.user.correct_scopes + Ajax.get("/users/#{user.id}").then (data) => + if data.user.correct_scopes && false userRecord = @loadUser(data.user) userRecord.get('permissions') # if user is still signed in, update saved data @@ -98,9 +98,9 @@ Auth = Ember.Object.extend @storeData(data, @storage) Travis.trigger('user:refreshed', data.user) else - @signOut() - , (status, xhr) => - @signOut() if status == 403 || status == 404 + return Ember.RSVP.Promise.reject() + else + return Ember.RSVP.Promise.resolve() signedIn: (-> @get('state') == 'signed-in'