diff --git a/Gemfile.lock b/Gemfile.lock index f50dc7b9..8ae03428 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -50,7 +50,7 @@ GIT GIT remote: git://github.com/travis-ci/travis-core.git - revision: 3c20e66a20d9d540e2a6c5fb70c542fe97c62e25 + revision: 9a9f4caa2187734d34e98aa61ba5f4a61bc8a9f5 specs: travis-core (0.0.1) actionmailer (~> 3.2.19) diff --git a/lib/travis/api/v3/access_control/user.rb b/lib/travis/api/v3/access_control/user.rb index 5b6460fe..e48bb577 100644 --- a/lib/travis/api/v3/access_control/user.rb +++ b/lib/travis/api/v3/access_control/user.rb @@ -8,7 +8,6 @@ module Travis::API::V3 user = Models::User.find(user.id) if user.is_a? ::User @user = user @access_permissions = user.permissions.where(user_id: user.id) - @got_request = false super() end @@ -21,7 +20,6 @@ module Travis::API::V3 end def visible_repositories(list) - load_permissions list.where('repositories.private = false OR repositories.id IN (?)'.freeze, access_permissions.map(&:repository_id)) end @@ -49,19 +47,7 @@ module Travis::API::V3 def permission?(type, id) id = id.id if id.is_a? ::Repository - - load_permissions if @got_request - @got_request = true - - if access_permissions.respond_to? :where - access_permissions.where(type => true, :repository_id => id).any? - else - access_permissions.any? { |p| p[type] == true and p.repository_id == id } - end - end - - def load_permissions - @access_permissions = @access_permissions.to_a + access_permissions.where(type => true, :repository_id => id).any? end end end diff --git a/lib/travis/api/v3/models/repository.rb b/lib/travis/api/v3/models/repository.rb index 778dbf09..ed35b5a2 100644 --- a/lib/travis/api/v3/models/repository.rb +++ b/lib/travis/api/v3/models/repository.rb @@ -50,5 +50,17 @@ module Travis::API::V3 rescue ActiveRecord::RecordNotUnique branches.where(name: name).first end + + def id_default_branch + [id, default_branch_name] + end + + def send(name, *args, &block) + if name == [:id, :default_branch] + name = :id_default_branch + end + + __send__(name, *args, &block) + end end end