v3: add @permissions to user payload
This commit is contained in:
parent
2094b50553
commit
857f13b26c
|
@ -29,6 +29,10 @@ module Travis::API::V3
|
||||||
organization.members.include? user
|
organization.members.include? user
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def user_writable?(user)
|
||||||
|
user == self.user
|
||||||
|
end
|
||||||
|
|
||||||
def repository_writable?(repository)
|
def repository_writable?(repository)
|
||||||
permission?(:push, repository)
|
permission?(:push, repository)
|
||||||
end
|
end
|
||||||
|
|
9
lib/travis/api/v3/permissions/user.rb
Normal file
9
lib/travis/api/v3/permissions/user.rb
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
require 'travis/api/v3/permissions/generic'
|
||||||
|
|
||||||
|
module Travis::API::V3
|
||||||
|
class Permissions::User < Permissions::Generic
|
||||||
|
def sync?
|
||||||
|
write?
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
|
@ -151,15 +151,16 @@ describe Travis::API::V3::Services::Owner::Find do
|
||||||
before { get("/v3/owner/example-user") }
|
before { get("/v3/owner/example-user") }
|
||||||
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" => "user",
|
"@type" => "user",
|
||||||
"@href" => "/v3/user/#{user.id}",
|
"@href" => "/v3/user/#{user.id}",
|
||||||
"id" => user.id,
|
"@permissions" => {"read"=>true, "sync"=>false},
|
||||||
"login" => "example-user",
|
"id" => user.id,
|
||||||
"name" => nil,
|
"login" => "example-user",
|
||||||
"github_id" => nil,
|
"name" => nil,
|
||||||
"avatar_url" => nil,
|
"github_id" => nil,
|
||||||
"is_syncing" => nil,
|
"avatar_url" => nil,
|
||||||
"synced_at" => nil
|
"is_syncing" => nil,
|
||||||
|
"synced_at" => nil
|
||||||
}}
|
}}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -167,15 +168,16 @@ describe Travis::API::V3::Services::Owner::Find do
|
||||||
before { get("/v3/owner/example-USER") }
|
before { get("/v3/owner/example-USER") }
|
||||||
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" => "user",
|
"@type" => "user",
|
||||||
"@href" => "/v3/user/#{user.id}",
|
"@href" => "/v3/user/#{user.id}",
|
||||||
"id" => user.id,
|
"@permissions" => {"read"=>true, "sync"=>false},
|
||||||
"login" => "example-user",
|
"id" => user.id,
|
||||||
"name" => nil,
|
"login" => "example-user",
|
||||||
"github_id" => nil,
|
"name" => nil,
|
||||||
"avatar_url" => nil,
|
"github_id" => nil,
|
||||||
"is_syncing" => nil,
|
"avatar_url" => nil,
|
||||||
"synced_at" => nil
|
"is_syncing" => nil,
|
||||||
|
"synced_at" => nil
|
||||||
}}
|
}}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -187,15 +189,16 @@ describe Travis::API::V3::Services::Owner::Find do
|
||||||
before { get("/v3/owner/example-user?user.id=#{other.id}") }
|
before { get("/v3/owner/example-user?user.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" => "user",
|
"@type" => "user",
|
||||||
"@href" => "/v3/user/#{user.id}",
|
"@href" => "/v3/user/#{user.id}",
|
||||||
"id" => user.id,
|
"@permissions" => {"read"=>true, "sync"=>false},
|
||||||
"login" => "example-user",
|
"id" => user.id,
|
||||||
"name" => nil,
|
"login" => "example-user",
|
||||||
"github_id" => nil,
|
"name" => nil,
|
||||||
"avatar_url" => nil,
|
"github_id" => nil,
|
||||||
"is_syncing" => nil,
|
"avatar_url" => nil,
|
||||||
"synced_at" => nil
|
"is_syncing" => nil,
|
||||||
|
"synced_at" => nil
|
||||||
}}
|
}}
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -10,15 +10,16 @@ describe Travis::API::V3::Services::User::Current do
|
||||||
before { get("/v3/user", {}, headers) }
|
before { get("/v3/user", {}, 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" => "user",
|
"@type" => "user",
|
||||||
"@href" => "/v3/user/#{user.id}",
|
"@href" => "/v3/user/#{user.id}",
|
||||||
"id" => user.id,
|
"@permissions" => {"read"=>true, "sync"=>true},
|
||||||
"login" => "svenfuchs",
|
"id" => user.id,
|
||||||
"name" =>"Sven Fuchs",
|
"login" => "svenfuchs",
|
||||||
"github_id" => user.github_id,
|
"name" =>"Sven Fuchs",
|
||||||
"avatar_url" => "https://0.gravatar.com/avatar/07fb84848e68b96b69022d333ca8a3e2",
|
"github_id" => user.github_id,
|
||||||
"is_syncing" => user.is_syncing,
|
"avatar_url" => "https://0.gravatar.com/avatar/07fb84848e68b96b69022d333ca8a3e2",
|
||||||
"synced_at" => user.synced_at
|
"is_syncing" => user.is_syncing,
|
||||||
|
"synced_at" => user.synced_at
|
||||||
}}
|
}}
|
||||||
end
|
end
|
||||||
end
|
end
|
|
@ -10,15 +10,16 @@ describe Travis::API::V3::Services::User::Find do
|
||||||
before { get("/v3/user/#{user.id}", {}, headers) }
|
before { get("/v3/user/#{user.id}", {}, 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" => "user",
|
"@type" => "user",
|
||||||
"@href" => "/v3/user/#{user.id}",
|
"@href" => "/v3/user/#{user.id}",
|
||||||
"id" => user.id,
|
"@permissions" => {"read"=>true, "sync"=>true},
|
||||||
"login" => "svenfuchs",
|
"id" => user.id,
|
||||||
"name" =>"Sven Fuchs",
|
"login" => "svenfuchs",
|
||||||
"github_id" => user.github_id,
|
"name" =>"Sven Fuchs",
|
||||||
"avatar_url" => "https://0.gravatar.com/avatar/07fb84848e68b96b69022d333ca8a3e2",
|
"github_id" => user.github_id,
|
||||||
"is_syncing" => user.is_syncing,
|
"avatar_url" => "https://0.gravatar.com/avatar/07fb84848e68b96b69022d333ca8a3e2",
|
||||||
"synced_at" => user.synced_at
|
"is_syncing" => user.is_syncing,
|
||||||
|
"synced_at" => user.synced_at
|
||||||
}}
|
}}
|
||||||
end
|
end
|
||||||
end
|
end
|
Loading…
Reference in New Issue
Block a user