From 77ad196a86094a7d6f1b17f2271c43662f8600f6 Mon Sep 17 00:00:00 2001 From: Konstantin Haase Date: Wed, 29 Apr 2015 10:56:33 +0200 Subject: [PATCH] v3: use permissions check for enable/disable --- lib/travis/api/v3/permissions/repository.rb | 8 ++++++++ lib/travis/api/v3/services/repository/disable.rb | 5 +++++ lib/travis/api/v3/services/repository/enable.rb | 4 ++++ 3 files changed, 17 insertions(+) diff --git a/lib/travis/api/v3/permissions/repository.rb b/lib/travis/api/v3/permissions/repository.rb index 18b793e8..b89d6ae4 100644 --- a/lib/travis/api/v3/permissions/repository.rb +++ b/lib/travis/api/v3/permissions/repository.rb @@ -1,5 +1,13 @@ module Travis::API::V3 class Permissions::Repository < Permissions::Generic + def enable? + write? + end + + def disable? + write? + end + def create_request? write? end diff --git a/lib/travis/api/v3/services/repository/disable.rb b/lib/travis/api/v3/services/repository/disable.rb index 08a191bb..c904351e 100644 --- a/lib/travis/api/v3/services/repository/disable.rb +++ b/lib/travis/api/v3/services/repository/disable.rb @@ -3,6 +3,7 @@ module Travis::API::V3 def run!(activate = false) raise LoginRequired unless access_control.logged_in? or access_control.full_access? raise NotFound unless repository = find(:repository) + check_access(repository) admin = access_control.admin_for(repository) @@ -11,5 +12,9 @@ module Travis::API::V3 repository end + + def check_access(repository) + access_control.permissions(repository).disable! + end end end diff --git a/lib/travis/api/v3/services/repository/enable.rb b/lib/travis/api/v3/services/repository/enable.rb index 5d85439b..5d43bbe7 100644 --- a/lib/travis/api/v3/services/repository/enable.rb +++ b/lib/travis/api/v3/services/repository/enable.rb @@ -3,5 +3,9 @@ module Travis::API::V3 def run! super(true) end + + def check_access(repository) + access_control.permissions(repository).enable! + end end end