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