mirror of
https://github.com/discourse/discourse.git
synced 2024-12-01 04:03:43 +08:00
eb9155f3fe
DEV: deprecate `invite.via_email` in favor of `invite.emailed_status` This commit adds a new column `emailed_status` in `invites` table for tracking email sending status. 0 - not required 1 - pending 2 - bulk pending 3 - sending 4 - sent For normal email invites, invite record is created with emailed_status set to 'pending'. When bulk invites are sent invite record is created with emailed_status set to 'bulk pending'. For invites that generates link, invite record is created with emailed_status set to 'not required'. When invite email is in queue emailed_status is updated to 'sending' Once the email is sent via `InviteEmail` job the invite emailed_status is updated to 'sent'.
54 lines
1.2 KiB
Ruby
54 lines
1.2 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
class UserSecondFactor < ActiveRecord::Base
|
|
belongs_to :user
|
|
|
|
scope :backup_codes, -> do
|
|
where(method: UserSecondFactor.methods[:backup_codes], enabled: true)
|
|
end
|
|
|
|
scope :totps, -> do
|
|
where(method: UserSecondFactor.methods[:totp], enabled: true)
|
|
end
|
|
|
|
scope :all_totps, -> do
|
|
where(method: UserSecondFactor.methods[:totp])
|
|
end
|
|
|
|
def self.methods
|
|
@methods ||= Enum.new(
|
|
totp: 1,
|
|
backup_codes: 2,
|
|
)
|
|
end
|
|
|
|
def get_totp_object
|
|
ROTP::TOTP.new(self.data, issuer: SiteSetting.title)
|
|
end
|
|
|
|
def totp_provisioning_uri
|
|
get_totp_object.provisioning_uri(user.email)
|
|
end
|
|
|
|
end
|
|
|
|
# == Schema Information
|
|
#
|
|
# Table name: user_second_factors
|
|
#
|
|
# id :bigint not null, primary key
|
|
# user_id :integer not null
|
|
# method :integer not null
|
|
# data :string not null
|
|
# enabled :boolean default(FALSE), not null
|
|
# last_used :datetime
|
|
# created_at :datetime not null
|
|
# updated_at :datetime not null
|
|
# name :string
|
|
#
|
|
# Indexes
|
|
#
|
|
# index_user_second_factors_on_method_and_enabled (method,enabled)
|
|
# index_user_second_factors_on_user_id (user_id)
|
|
#
|