Merge branch 'master' into glitch-soc/merge-upstream

Conflicts:
- `app/controllers/follower_accounts_controller.rb`:
  Conflict due to upstream changing suspension logic while
  glitch-soc has an extra option to hide followers count.
  Ported upstream changes.
This commit is contained in:
Thibaut Girka
2020-11-08 14:20:35 +01:00
47 changed files with 1049 additions and 204 deletions

View File

@@ -51,6 +51,7 @@
# header_storage_schema_version :integer
# devices_url :string
# sensitized_at :datetime
# suspension_origin :integer
#
class Account < ApplicationRecord
@@ -77,6 +78,7 @@ class Account < ApplicationRecord
}.freeze
enum protocol: [:ostatus, :activitypub]
enum suspension_origin: [:local, :remote], _prefix: true
validates :username, presence: true
validates_with UniqueUsernameValidator, if: -> { will_save_change_to_username? }
@@ -226,17 +228,25 @@ class Account < ApplicationRecord
suspended_at.present?
end
def suspend!(date = Time.now.utc)
def suspended_permanently?
suspended? && deletion_request.nil?
end
def suspended_temporarily?
suspended? && deletion_request.present?
end
def suspend!(date: Time.now.utc, origin: :local)
transaction do
create_deletion_request!
update!(suspended_at: date)
update!(suspended_at: date, suspension_origin: origin)
end
end
def unsuspend!
transaction do
deletion_request&.destroy!
update!(suspended_at: nil)
update!(suspended_at: nil, suspension_origin: nil)
end
end