diff --git a/app/models/user.coffee b/app/models/user.coffee index 964098f1..a3524584 100644 --- a/app/models/user.coffee +++ b/app/models/user.coffee @@ -54,6 +54,12 @@ User = Model.extend permissions ).property() + # TODO: permissions are loading asynchronously at the moment, so this should + # be the way to return them for all types: + pushPermissionsPromise: (-> + @get('_rawPermissions').then (data) => data.pull + ).property() + hasAccessToRepo: (repo) -> id = if repo.get then repo.get('id') else repo diff --git a/app/routes/settings.coffee b/app/routes/settings.coffee index 226f4de8..0945c35e 100644 --- a/app/routes/settings.coffee +++ b/app/routes/settings.coffee @@ -43,10 +43,11 @@ Route = TravisRoute.extend ); hasPushAccess: -> - repoId = parseInt @modelFor('repo').get('id') + repoId = parseInt(@modelFor('repo').get('id')) - @auth.get('currentUser').get('pushPermissions').filter (item) -> - item == repoId + @auth.get('currentUser').get('pushPermissionsPromise').then (permissions) -> + permissions.filter (item) -> + item == repoId model: () -> return Ember.RSVP.hash({