35 lines
955 B
Ruby
35 lines
955 B
Ruby
module Travis::API::V3
|
|
class Models::User < Model
|
|
has_many :memberships, dependent: :destroy
|
|
has_many :permissions, dependent: :destroy
|
|
has_many :emails, dependent: :destroy
|
|
has_many :tokens, dependent: :destroy
|
|
has_many :organizations, through: :memberships
|
|
has_many :repositories, as: :owner
|
|
has_many :stars
|
|
has_one :subscription, as: :owner
|
|
|
|
serialize :github_oauth_token, Travis::Settings::EncryptedColumn.new(disable: true)
|
|
|
|
def token
|
|
tokens.first_or_create.token
|
|
end
|
|
|
|
def subscription
|
|
super if Features.use_subscriptions?
|
|
end
|
|
|
|
def starred_repository_ids
|
|
@starred_repository_ids ||= stars.map(&:repository_id)
|
|
end
|
|
|
|
def permission?(roles, options = {})
|
|
roles, options = nil, roles if roles.is_a?(Hash)
|
|
scope = permissions.where(options)
|
|
scope = scope.by_roles(roles) if roles
|
|
scope.any?
|
|
end
|
|
|
|
end
|
|
end
|