v3: add @permissions to organization payload
This commit is contained in:
parent
21aa667b9c
commit
2094b50553
|
@ -25,6 +25,10 @@ module Travis::API::V3
|
|||
|
||||
protected
|
||||
|
||||
def organization_writable?(organization)
|
||||
organization.members.include? user
|
||||
end
|
||||
|
||||
def repository_writable?(repository)
|
||||
permission?(:push, repository)
|
||||
end
|
||||
|
|
9
lib/travis/api/v3/permissions/organization.rb
Normal file
9
lib/travis/api/v3/permissions/organization.rb
Normal file
|
@ -0,0 +1,9 @@
|
|||
require 'travis/api/v3/permissions/generic'
|
||||
|
||||
module Travis::API::V3
|
||||
class Permissions::Organization < Permissions::Generic
|
||||
def sync?
|
||||
write?
|
||||
end
|
||||
end
|
||||
end
|
|
@ -9,13 +9,14 @@ describe Travis::API::V3::Services::Organization::Find do
|
|||
before { get("/v3/org/#{org.id}") }
|
||||
example { expect(last_response).to be_ok }
|
||||
example { expect(JSON.load(body)).to be == {
|
||||
"@type" => "organization",
|
||||
"@href" => "/v3/org/#{org.id}",
|
||||
"id" => org.id,
|
||||
"login" => "example-org",
|
||||
"name" => nil,
|
||||
"github_id" => nil,
|
||||
"avatar_url" => nil
|
||||
"@type" => "organization",
|
||||
"@href" => "/v3/org/#{org.id}",
|
||||
"@permissions" => { "read"=>true, "sync"=>false },
|
||||
"id" => org.id,
|
||||
"login" => "example-org",
|
||||
"name" => nil,
|
||||
"github_id" => nil,
|
||||
"avatar_url" => nil
|
||||
}}
|
||||
end
|
||||
end
|
||||
|
|
|
@ -18,16 +18,17 @@ describe Travis::API::V3::Services::Organizations::ForCurrentUser do
|
|||
before { get("/v3/orgs", {}, headers) }
|
||||
example { expect(last_response).to be_ok }
|
||||
example { expect(JSON.load(body)).to be == {
|
||||
"@type" => "organizations",
|
||||
"@href" => "/v3/orgs",
|
||||
"organizations" => [{
|
||||
"@type" => "organization",
|
||||
"@href" => "/v3/org/#{org.id}",
|
||||
"id" => org.id,
|
||||
"login" => "example-org",
|
||||
"name" => nil,
|
||||
"github_id" => nil,
|
||||
"avatar_url" => nil
|
||||
"@type" => "organizations",
|
||||
"@href" => "/v3/orgs",
|
||||
"organizations" => [{
|
||||
"@type" => "organization",
|
||||
"@href" => "/v3/org/#{org.id}",
|
||||
"@permissions" => { "read"=>true, "sync"=>true },
|
||||
"id" => org.id,
|
||||
"login" => "example-org",
|
||||
"name" => nil,
|
||||
"github_id" => nil,
|
||||
"avatar_url" => nil
|
||||
}]
|
||||
}}
|
||||
end
|
||||
|
|
|
@ -10,13 +10,14 @@ describe Travis::API::V3::Services::Owner::Find do
|
|||
before { get("/v3/owner/example-org") }
|
||||
example { expect(last_response).to be_ok }
|
||||
example { expect(JSON.load(body)).to be == {
|
||||
"@type" => "organization",
|
||||
"@href" => "/v3/org/#{org.id}",
|
||||
"id" => org.id,
|
||||
"login" => "example-org",
|
||||
"name" => nil,
|
||||
"github_id" => nil,
|
||||
"avatar_url" => nil
|
||||
"@type" => "organization",
|
||||
"@href" => "/v3/org/#{org.id}",
|
||||
"@permissions" => { "read"=>true, "sync"=>false },
|
||||
"id" => org.id,
|
||||
"login" => "example-org",
|
||||
"name" => nil,
|
||||
"github_id" => nil,
|
||||
"avatar_url" => nil
|
||||
}}
|
||||
end
|
||||
|
||||
|
@ -31,6 +32,7 @@ describe Travis::API::V3::Services::Owner::Find do
|
|||
example { expect(JSON.load(body)).to be == {
|
||||
"@type" => "organization",
|
||||
"@href" => "/v3/org/#{org.id}",
|
||||
"@permissions" => { "read"=>true, "sync"=>false },
|
||||
"id" => org.id,
|
||||
"login" => "example-org",
|
||||
"name" => nil,
|
||||
|
@ -73,6 +75,7 @@ describe Travis::API::V3::Services::Owner::Find do
|
|||
example { expect(JSON.load(body)).to be == {
|
||||
"@type" => "organization",
|
||||
"@href" => "/v3/org/#{org.id}",
|
||||
"@permissions" => { "read"=>true, "sync"=>false },
|
||||
"id" => org.id,
|
||||
"login" => "example-org",
|
||||
"name" => nil,
|
||||
|
@ -108,13 +111,14 @@ describe Travis::API::V3::Services::Owner::Find do
|
|||
before { get("/v3/owner/example-ORG") }
|
||||
example { expect(last_response).to be_ok }
|
||||
example { expect(JSON.load(body)).to be == {
|
||||
"@type" => "organization",
|
||||
"@href" => "/v3/org/#{org.id}",
|
||||
"id" => org.id,
|
||||
"login" => "example-org",
|
||||
"name" => nil,
|
||||
"github_id" => nil,
|
||||
"avatar_url" => nil
|
||||
"@type" => "organization",
|
||||
"@href" => "/v3/org/#{org.id}",
|
||||
"@permissions" => { "read"=>true, "sync"=>false },
|
||||
"id" => org.id,
|
||||
"login" => "example-org",
|
||||
"name" => nil,
|
||||
"github_id" => nil,
|
||||
"avatar_url" => nil
|
||||
}}
|
||||
end
|
||||
|
||||
|
@ -126,13 +130,14 @@ describe Travis::API::V3::Services::Owner::Find do
|
|||
before { get("/v3/owner/example-org?organization.id=#{other.id}") }
|
||||
example { expect(last_response).to be_ok }
|
||||
example { expect(JSON.load(body)).to be == {
|
||||
"@type" => "organization",
|
||||
"@href" => "/v3/org/#{org.id}",
|
||||
"id" => org.id,
|
||||
"login" => "example-org",
|
||||
"name" => nil,
|
||||
"github_id" => nil,
|
||||
"avatar_url" => nil
|
||||
"@type" => "organization",
|
||||
"@href" => "/v3/org/#{org.id}",
|
||||
"@permissions" => { "read"=>true, "sync"=>false },
|
||||
"id" => org.id,
|
||||
"login" => "example-org",
|
||||
"name" => nil,
|
||||
"github_id" => nil,
|
||||
"avatar_url" => nil
|
||||
}}
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue
Block a user