Add ability to disable login and mark accounts as memorial (#5615)
Fix #5597
This commit is contained in:
parent
cbbeec05be
commit
1032f3994f
17 changed files with 168 additions and 39 deletions
|
@ -5,7 +5,6 @@
|
|||
#
|
||||
# id :integer not null, primary key
|
||||
# email :string default(""), not null
|
||||
# account_id :integer not null
|
||||
# created_at :datetime not null
|
||||
# updated_at :datetime not null
|
||||
# encrypted_password :string default(""), not null
|
||||
|
@ -31,10 +30,13 @@
|
|||
# last_emailed_at :datetime
|
||||
# otp_backup_codes :string is an Array
|
||||
# filtered_languages :string default([]), not null, is an Array
|
||||
# account_id :integer not null
|
||||
# disabled :boolean default(FALSE), not null
|
||||
#
|
||||
|
||||
class User < ApplicationRecord
|
||||
include Settings::Extend
|
||||
|
||||
ACTIVE_DURATION = 14.days
|
||||
|
||||
devise :registerable, :recoverable,
|
||||
|
@ -72,12 +74,26 @@ class User < ApplicationRecord
|
|||
confirmed_at.present?
|
||||
end
|
||||
|
||||
def disable!
|
||||
update!(disabled: true,
|
||||
last_sign_in_at: current_sign_in_at,
|
||||
current_sign_in_at: nil)
|
||||
end
|
||||
|
||||
def enable!
|
||||
update!(disabled: false)
|
||||
end
|
||||
|
||||
def disable_two_factor!
|
||||
self.otp_required_for_login = false
|
||||
otp_backup_codes&.clear
|
||||
save!
|
||||
end
|
||||
|
||||
def active_for_authentication?
|
||||
super && !disabled?
|
||||
end
|
||||
|
||||
def setting_default_privacy
|
||||
settings.default_privacy || (account.locked? ? 'private' : 'public')
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue