From effd6360a781331d8c50556b219e7f55b4da2ca2 Mon Sep 17 00:00:00 2001
From: Sven Fuchs <me@svenfuchs.com>
Date: Tue, 18 Sep 2012 21:03:52 +0200
Subject: [PATCH] fix sign in payload, user loading etc

---
 assets/javascripts/app/app.coffee           |  7 +++----
 assets/javascripts/app/models/user.coffee   | 18 +++++++++---------
 assets/javascripts/app/views/profile.coffee |  4 ++--
 assets/javascripts/app/views/top.coffee     |  4 ++--
 assets/javascripts/lib/travis/auth.coffee   |  6 +++---
 5 files changed, 19 insertions(+), 20 deletions(-)

diff --git a/assets/javascripts/app/app.coffee b/assets/javascripts/app/app.coffee
index 55874a7b..e019972b 100644
--- a/assets/javascripts/app/app.coffee
+++ b/assets/javascripts/app/app.coffee
@@ -31,7 +31,7 @@ Travis.reopen
       @pusher = new Travis.Pusher()
       @tailing = new Travis.Tailing()
 
-      #@setCurrentUser(JSON.parse($.cookie('user')))
+      # @setCurrentUser(JSON.parse($.cookie('user')))
 
     signIn: ->
       Travis.Auth.signIn()
@@ -44,11 +44,10 @@ Travis.reopen
 
     setCurrentUser: (data) ->
       data = JSON.parse(data) if typeof data == 'string'
-      #$.cookie('user', JSON.stringify(data))
+      # $.cookie('user', JSON.stringify(data))
       if data
         @store.load(Travis.User, data.user)
-        # TODO: this throws an error
-        #@store.loadMany(Travis.Account, data.accounts)
+        @store.loadMany(Travis.Account, data.accounts)
       @set('currentUser', if data then Travis.User.find(data.user.id) else undefined)
 
     render: (name, action, params) ->
diff --git a/assets/javascripts/app/models/user.coffee b/assets/javascripts/app/models/user.coffee
index be61bb7a..ce0a4d32 100644
--- a/assets/javascripts/app/models/user.coffee
+++ b/assets/javascripts/app/models/user.coffee
@@ -1,15 +1,15 @@
 require 'travis/model'
 
 @Travis.User = Travis.Model.extend
-  name:      DS.attr('string')
-  email:     DS.attr('string')
-  login:     DS.attr('string')
-  token:     DS.attr('string')
-  locale:    DS.attr('string')
-  gravatar:  DS.attr('string')
-  isSyncing: DS.attr('boolean')
-  syncedAt:  DS.attr('string')
-  repoCount: DS.attr('number')
+  name:       DS.attr('string')
+  email:      DS.attr('string')
+  login:      DS.attr('string')
+  token:      DS.attr('string')
+  locale:     DS.attr('string')
+  gravatarId: DS.attr('string')
+  isSyncing:  DS.attr('boolean')
+  syncedAt:   DS.attr('string')
+  repoCount:  DS.attr('number')
 
   init: ->
     @poll() if @get('isSyncing')
diff --git a/assets/javascripts/app/views/profile.coffee b/assets/javascripts/app/views/profile.coffee
index 5898b478..7198f4e3 100644
--- a/assets/javascripts/app/views/profile.coffee
+++ b/assets/javascripts/app/views/profile.coffee
@@ -65,8 +65,8 @@
     userBinding: 'controller.user'
 
     gravatarUrl: (->
-      "http://www.gravatar.com/avatar/#{@get('user.gravatar')}?s=48&d=mm"
-    ).property('user.gravatar')
+      "http://www.gravatar.com/avatar/#{@get('user.gravatarId')}?s=48&d=mm"
+    ).property('user.gravatarId')
 
     locales: (->
       [
diff --git a/assets/javascripts/app/views/top.coffee b/assets/javascripts/app/views/top.coffee
index 623d484b..c18215e9 100644
--- a/assets/javascripts/app/views/top.coffee
+++ b/assets/javascripts/app/views/top.coffee
@@ -8,8 +8,8 @@ require 'travis/auth'
     userBinding: 'controller.user'
 
     gravatarUrl: (->
-      "https://www.gravatar.com/avatar/#{@get('user.gravatar')}?s=24&d=mm"
-    ).property('user.gravatar')
+      "https://www.gravatar.com/avatar/#{@get('user.gravatarId')}?s=24&d=mm"
+    ).property('user.gravatarId')
 
     # hrm. how to parametrize bindAttr?
     classHome: (->
diff --git a/assets/javascripts/lib/travis/auth.coffee b/assets/javascripts/lib/travis/auth.coffee
index a9773c18..f611817c 100644
--- a/assets/javascripts/lib/travis/auth.coffee
+++ b/assets/javascripts/lib/travis/auth.coffee
@@ -15,7 +15,7 @@ $.extend Travis.Auth.prototype,
 
   expectedOrigin: ->
     if Travis.config.api_endpoint[0] == '/'
-      window.location.protocol + "://" + window.location.host
+      window.location.protocol + "//" + window.location.host
     else
       Travis.config.api_endpoint
 
@@ -24,8 +24,8 @@ $.extend Travis.Auth.prototype,
       console.log("unexpected message #{event.origin}: #{event.data}")
     else
       Travis.config.access_token = event.data.token
-      Travis.app.setCurrentUser(event.data.user)
-      console.log('sign in!')
+      Travis.app.setCurrentUser(event.data)
+      console.log("signed in as #{event.data.user.login}")
 
   trySignIn: ->
     @iframe.attr('src', "#{Travis.config.api_endpoint}/auth/post_message")