59 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Ruby
		
	
	
	
# == Schema Information
 | 
						|
#
 | 
						|
# Table name: trace_users
 | 
						|
#
 | 
						|
#  id         :integer          not null, primary key
 | 
						|
#  user_id    :integer
 | 
						|
#  username   :string(255)
 | 
						|
#  password   :string(255)
 | 
						|
#  unit       :string(255)
 | 
						|
#  telnumber  :string(255)
 | 
						|
#  email      :string(255)
 | 
						|
#  name       :string(255)
 | 
						|
#  token      :text(65535)
 | 
						|
#  expired_at :datetime
 | 
						|
#  created_at :datetime         not null
 | 
						|
#  updated_at :datetime         not null
 | 
						|
#
 | 
						|
# Indexes
 | 
						|
#
 | 
						|
#  index_trace_users_on_user_id  (user_id)
 | 
						|
#
 | 
						|
 | 
						|
# 代码溯源 用户
 | 
						|
class TraceUser < ApplicationRecord
 | 
						|
 | 
						|
  belongs_to :user
 | 
						|
 | 
						|
 | 
						|
  def build_self_data
 | 
						|
    return if user.nil? 
 | 
						|
 | 
						|
    self.username = user.login 
 | 
						|
    self.password = SecureRandom.hex
 | 
						|
    self.unit = user.custom_department.blank? ? 'GitLink' : user.custom_department
 | 
						|
    self.telnumber = user.phone || ""
 | 
						|
    self.email = user.mail 
 | 
						|
    self.name = user.nickname.blank? ? user.login : user.nickname 
 | 
						|
 | 
						|
    self
 | 
						|
  end
 | 
						|
 | 
						|
 | 
						|
  def build_token 
 | 
						|
    return if username.blank? || password.blank? || unit.blank? || email.blank? || name.blank? 
 | 
						|
 | 
						|
    response = Trace::AddUserService.call(username, password, unit, telnumber, email, name)
 | 
						|
    self.token = response[1]['token']
 | 
						|
    self.expired_at = Time.now + 1.hours
 | 
						|
  end
 | 
						|
 | 
						|
  def refresh_token 
 | 
						|
    return if username.blank? || password.blank? || unit.blank? || email.blank? || name.blank? 
 | 
						|
 | 
						|
    response = Trace::LoginService.call(username, password)
 | 
						|
    self.token = response[1]['token']
 | 
						|
    self.expired_at = Time.now + 1.hours
 | 
						|
  end
 | 
						|
end
 |