diff --git a/lib/travis/api/v3/access_control/user.rb b/lib/travis/api/v3/access_control/user.rb index 181bb399..ecc54315 100644 --- a/lib/travis/api/v3/access_control/user.rb +++ b/lib/travis/api/v3/access_control/user.rb @@ -5,6 +5,7 @@ module Travis::API::V3 attr_reader :user, :permissions def initialize(user) + user = Models::User.find(user.id) if user.is_a? ::User @user = user @permissions = user.permissions.where(user_id: user.id) super() diff --git a/lib/travis/api/v3/models/user.rb b/lib/travis/api/v3/models/user.rb index 73136efd..c07f3a4b 100644 --- a/lib/travis/api/v3/models/user.rb +++ b/lib/travis/api/v3/models/user.rb @@ -1,5 +1,9 @@ module Travis::API::V3 class Models::User < Model - has_many :emails + has_many :memberships, dependent: :destroy + has_many :organizations, through: :memberships + has_many :permissions, dependent: :destroy + has_many :repositories, through: :permissions + has_many :emails, dependent: :destroy end end diff --git a/lib/travis/api/v3/queries/build.rb b/lib/travis/api/v3/queries/build.rb index f227761a..1f97e7c7 100644 --- a/lib/travis/api/v3/queries/build.rb +++ b/lib/travis/api/v3/queries/build.rb @@ -4,7 +4,7 @@ module Travis::API::V3 def find return Models::Build.find_by_id(id) if id - raise WrongParams + raise WrongParams, 'missing build.id'.freeze end end end diff --git a/lib/travis/api/v3/queries/organization.rb b/lib/travis/api/v3/queries/organization.rb index ae971d7a..8c07c910 100644 --- a/lib/travis/api/v3/queries/organization.rb +++ b/lib/travis/api/v3/queries/organization.rb @@ -4,7 +4,7 @@ module Travis::API::V3 def find return Models::Organization.find_by_id(id) if id - raise WrongParams + raise WrongParams, 'missing organization.id'.freeze end end end diff --git a/lib/travis/api/v3/queries/repository.rb b/lib/travis/api/v3/queries/repository.rb index 6542c7b9..d8ceaff9 100644 --- a/lib/travis/api/v3/queries/repository.rb +++ b/lib/travis/api/v3/queries/repository.rb @@ -4,7 +4,7 @@ module Travis::API::V3 def find return Models::Repository.find_by_id(id) if id - raise WrongParams + raise WrongParams, 'missing repository.id'.freeze end end end diff --git a/lib/travis/api/v3/query.rb b/lib/travis/api/v3/query.rb index 3676065f..48989490 100644 --- a/lib/travis/api/v3/query.rb +++ b/lib/travis/api/v3/query.rb @@ -46,9 +46,9 @@ module Travis::API::V3 def user_condition(value) case value - when String then { login: value } - when Integer then { id: value } - when ::User then { id: value.id } + when String then { login: value } + when Integer then { id: value } + when Models::User then { id: value.id } else raise WrongParams end end