gitlab-org--gitlab-foss/lib/gitlab/auth/atlassian/user.rb

35 lines
1,011 B
Ruby

# frozen_string_literal: true
module Gitlab
module Auth
module Atlassian
class User < Gitlab::Auth::OAuth::User
def self.assign_identity_from_auth_hash!(identity, auth_hash)
identity.extern_uid = auth_hash.uid
identity.token = auth_hash.token
identity.refresh_token = auth_hash.refresh_token
identity.expires_at = Time.at(auth_hash.expires_at).utc.to_datetime if auth_hash.expires?
identity
end
protected
def find_by_uid_and_provider
::Atlassian::Identity.find_by_extern_uid(auth_hash.uid)&.user
end
def add_or_update_user_identities
return unless gl_user
identity = gl_user.atlassian_identity || gl_user.build_atlassian_identity
self.class.assign_identity_from_auth_hash!(identity, auth_hash)
end
def auth_hash=(auth_hash)
@auth_hash = ::Gitlab::Auth::Atlassian::AuthHash.new(auth_hash)
end
end
end
end
end