diff --git a/app/controllers/repos.coffee b/app/controllers/repos.coffee index 8222a44d..3413619d 100644 --- a/app/controllers/repos.coffee +++ b/app/controllers/repos.coffee @@ -87,14 +87,12 @@ Controller = Ember.Controller.extend viewOwned: -> @set('isLoaded', false); - if login = @get('currentUser.login') - repos = Repo.accessibleBy(@store, login).then( (reposRecordArray) => + @get('currentUser._rawPermissions').then (data) => + repos = Repo.accessibleBy(@store, data.pull).then( (reposRecordArray) => @set('isLoaded', true) @set('repos', reposRecordArray) ) # TODO: handle error - else - @set('repos', []) viewRunning: -> diff --git a/app/models/repo.coffee b/app/models/repo.coffee index 6e35b2ff..764428bf 100644 --- a/app/models/repo.coffee +++ b/app/models/repo.coffee @@ -118,16 +118,22 @@ Repo.reopenClass recent: -> @find() - accessibleBy: (store, login) -> + accessibleBy: (store, reposIds) -> # this fires only for authenticated users and with API v3 that means getting # only repos of currently logged in owner, but in the future it would be # nice to not use that as it may change in the future - repos = store.query('repo', { 'repository.active': 'true' }) + repos = store.filter('repo', (repo) -> + reposIds.indexOf(parseInt(repo.get('id'))) != -1 + ) - repos.then () -> - repos.set('isLoaded', true) + promise = new Ember.RSVP.Promise (resolve, reject) -> + store.query('repo', { 'repository.active': 'true' }).then( -> + resolve(repos) + , -> + reject() + ) - repos + promise search: (store, query) -> promise = store.query('repo', search: query, orderBy: 'name')