gearheads
/
mastodon
Archived
2
0
Fork 0
This repository has been archived on 2024-06-09. You can view files and clone it, but cannot push or open issues/pull-requests.
mastodon/app/controllers/settings/exports_controller.rb

34 lines
692 B
Ruby
Raw Normal View History

# frozen_string_literal: true
class Settings::ExportsController < Settings::BaseController
include Authorization
skip_before_action :require_functional!
2017-03-19 20:29:41 +01:00
def show
@export = Export.new(current_account)
@backups = current_user.backups
end
def create
backup = nil
RedisLock.acquire(lock_options) do |lock|
if lock.acquired?
authorize :backup, :create?
backup = current_user.backups.create!
else
raise Mastodon::RaceConditionError
end
end
BackupWorker.perform_async(backup.id)
redirect_to settings_export_path
2017-03-19 20:29:41 +01:00
end
def lock_options
{ redis: Redis.current, key: "backup:#{current_user.id}" }
end
end