From 25dffc0a7a7af5f076fa8473390f7cfc1ef3490f Mon Sep 17 00:00:00 2001 From: Sven Fuchs Date: Sat, 6 Oct 2012 23:40:05 +0200 Subject: [PATCH] load user permissions --- Gemfile.lock | 4 ++-- assets/scripts/app/auth.coffee | 4 +++- assets/scripts/app/models/repo.coffee | 7 +------ assets/scripts/app/models/user.coffee | 7 +++++++ assets/scripts/lib/travis/ajax.coffee | 4 ++-- public/scripts/app.js | 2 +- public/scripts/min/app.js | 2 +- public/version | 2 +- 8 files changed, 18 insertions(+), 14 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 005a437b..5055ddda 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -43,7 +43,7 @@ GIT GIT remote: git://github.com/travis-ci/travis-api.git - revision: f7c522278eb7fdc9ccbf96af711fe38fa4fb4674 + revision: 8abc3309372e8a9c4e3506cbf45362c49e91b24d specs: travis-api (0.0.1) backports (~> 2.5) @@ -61,7 +61,7 @@ GIT GIT remote: git://github.com/travis-ci/travis-core.git - revision: 6be27b79c655f49eaa1468f9156bebdafdb85e52 + revision: 94dbbf2fea57b56383e26152ae3a4cece02d2df0 branch: sf-travis-api specs: travis-core (0.0.1) diff --git a/assets/scripts/app/auth.coffee b/assets/scripts/app/auth.coffee index 541b5427..31aa96fe 100644 --- a/assets/scripts/app/auth.coffee +++ b/assets/scripts/app/auth.coffee @@ -59,7 +59,9 @@ localStorage.setItem('travis.auto_signin', 'true') sessionStorage.setItem('travis.user', JSON.stringify(user)) @app.store.load(Travis.User, user) - @app.store.find(Travis.User, user.id) + user = @app.store.find(Travis.User, user.id) + user.get('permissions') + user receiveMessage: (event) -> if event.origin == @expectedOrigin() diff --git a/assets/scripts/app/models/repo.coffee b/assets/scripts/app/models/repo.coffee index 42a0a6e9..071c43ef 100644 --- a/assets/scripts/app/models/repo.coffee +++ b/assets/scripts/app/models/repo.coffee @@ -15,13 +15,8 @@ require 'travis/model' builds: (-> id = @get('id') builds = Travis.Build.byRepoId id, event_type: 'push' - array = Travis.ExpandableRecordArray.create - type: Travis.Build - content: Ember.A([]) - store: @get('store') - + array = Travis.ExpandableRecordArray.create(type: Travis.Build, content: Ember.A([]), store: @get('store')) array.load(builds) - array ).property() diff --git a/assets/scripts/app/models/user.coffee b/assets/scripts/app/models/user.coffee index c33529d8..62f1aa4d 100644 --- a/assets/scripts/app/models/user.coffee +++ b/assets/scripts/app/models/user.coffee @@ -24,6 +24,13 @@ require 'travis/model' "https://github.com/#{@get('login')}" ).property() + permissions: (-> + unless @permissions + @permissions = Ember.ArrayProxy.create() + @ajax '/users/permissions', 'get', success: (data) => @permissions.set('content', data).permissions + @permissions + ).property() + updateLocale: (locale) -> @setWithSession('locale', locale) diff --git a/assets/scripts/lib/travis/ajax.coffee b/assets/scripts/lib/travis/ajax.coffee index 763d0f22..5b33dc08 100644 --- a/assets/scripts/lib/travis/ajax.coffee +++ b/assets/scripts/lib/travis/ajax.coffee @@ -12,9 +12,9 @@ jQuery.support.cors = true endpoint = Travis.config.api_endpoint || '' options = options || {} - if accessToken = Travis.app?.get('auth.accessToken') + if token = sessionStorage.getItem('travis.token') options.headers ||= {} - options.headers['Authorization'] ||= "token #{accessToken}" + options.headers['Authorization'] ||= "token #{token}" options.url = "#{endpoint}#{url}" options.type = method diff --git a/public/scripts/app.js b/public/scripts/app.js index 94ea26cd..b3f19702 100644 --- a/public/scripts/app.js +++ b/public/scripts/app.js @@ -29619,4 +29619,4 @@ var _require=function(){function c(a,c){document.addEventListener?a.addEventList ++g&&setTimeout(c,0)})}}(); (function(){!window.WebSocket&&window.MozWebSocket&&(window.WebSocket=window.MozWebSocket);if(window.WebSocket)Pusher.Transport=window.WebSocket,Pusher.TransportType="native";var c=(document.location.protocol=="http:"?Pusher.cdn_http:Pusher.cdn_https)+Pusher.VERSION,a=[];window.JSON||a.push(c+"/json2"+Pusher.dependency_suffix+".js");if(!window.WebSocket)window.WEB_SOCKET_DISABLE_AUTO_INITIALIZATION=!0,a.push(c+"/flashfallback"+Pusher.dependency_suffix+".js");var b=function(){return window.WebSocket?function(){Pusher.ready()}: function(){window.WebSocket?(Pusher.Transport=window.WebSocket,Pusher.TransportType="flash",window.WEB_SOCKET_SWF_LOCATION=c+"/WebSocketMain.swf",WebSocket.__addTask(function(){Pusher.ready()}),WebSocket.__initialize()):(Pusher.Transport=null,Pusher.TransportType="none",Pusher.ready())}}(),e=function(a){var b=function(){document.body?a():setTimeout(b,0)};b()},g=function(){e(b)};a.length>0?_require(a,g):g()})(); -;minispade.register('app', "(function() {(function() {\nminispade.require('auth');\nminispade.require('controllers');\nminispade.require('helpers');\nminispade.require('models');\nminispade.require('pusher');\nminispade.require('routes');\nminispade.require('slider');\nminispade.require('store');\nminispade.require('tailing');\nminispade.require('templates');\nminispade.require('views');\nminispade.require('config/locales');\nminispade.require('data/sponsors');\n\n Travis.reopen({\n App: Em.Application.extend({\n autoinit: false,\n currentUserBinding: 'auth.user',\n authStateBinding: 'auth.state',\n init: function() {\n this._super.apply(this, arguments);\n this.store = Travis.Store.create();\n this.store.loadMany(Travis.Sponsor, Travis.SPONSORS);\n this.set('auth', Travis.Auth.create({\n app: this,\n endpoint: Travis.config.api_endpoint\n }));\n this.slider = new Travis.Slider();\n this.pusher = new Travis.Pusher(Travis.config.pusher);\n return this.tailing = new Travis.Tailing();\n },\n signIn: function() {\n return this.get('auth').signIn();\n },\n signOut: function() {\n this.get('auth').signOut();\n return this.get('router').send('showRoot');\n },\n receive: function() {\n return this.store.receive.apply(this.store, arguments);\n },\n toggleSidebar: function() {\n var element;\n $('body').toggleClass('maximized');\n element = $('');\n $('#top .profile').append(element);\n Em.run.later((function() {\n return element.remove();\n }), 10);\n element = $('');\n $('#repo').append(element);\n return Em.run.later((function() {\n return element.remove();\n }), 10);\n }\n })\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=app");minispade.register('auth', "(function() {(function() {\n\n this.Travis.Auth = Ember.Object.extend({\n iframe: $('