مراية لـ
https://github.com/postalserver/postal.git
تم المزامنة 2025-12-01 05:43:04 +00:00
58 أسطر
1.1 KiB
Ruby
58 أسطر
1.1 KiB
Ruby
# == Schema Information
|
|
#
|
|
# Table name: credentials
|
|
#
|
|
# id :integer not null, primary key
|
|
# server_id :integer
|
|
# key :string(255)
|
|
# type :string(255)
|
|
# name :string(255)
|
|
# options :text(65535)
|
|
# last_used_at :datetime
|
|
# created_at :datetime
|
|
# updated_at :datetime
|
|
# hold :boolean default(FALSE)
|
|
#
|
|
|
|
class Credential < ApplicationRecord
|
|
|
|
belongs_to :server
|
|
|
|
TYPES = ['SMTP', 'API']
|
|
|
|
validates :key, :presence => true, :uniqueness => true
|
|
validates :type, :inclusion => {:in => TYPES}
|
|
validates :name, :presence => true
|
|
|
|
random_string :key, :type => :chars, :length => 24, :unique => true
|
|
|
|
serialize :options, Hash
|
|
|
|
def to_param
|
|
key
|
|
end
|
|
|
|
def use
|
|
update_column(:last_used_at, Time.now)
|
|
end
|
|
|
|
def usage_type
|
|
if last_used_at.nil?
|
|
'Unused'
|
|
elsif last_used_at < 1.year.ago
|
|
'Inactive'
|
|
elsif last_used_at < 6.months.ago
|
|
'Dormant'
|
|
elsif last_used_at < 1.month.ago
|
|
'Quiet'
|
|
else
|
|
'Active'
|
|
end
|
|
end
|
|
|
|
def to_smtp_plain
|
|
Base64.encode64("\0XX\0#{self.key}").strip
|
|
end
|
|
|
|
end
|