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