Files
docuseal/app/controllers/user_initials_controller.rb
T

50 lines
1.4 KiB
Ruby
Raw Normal View History

2024-06-02 17:06:09 +03:00
# frozen_string_literal: true
class UserInitialsController < ApplicationController
before_action :load_user_config
authorize_resource :user_config
def edit; end
def update
file = params[:file]
2024-09-18 19:47:47 +03:00
return redirect_to settings_profile_index_path, notice: I18n.t('unable_to_save_initials') if file.blank?
2024-06-02 17:06:09 +03:00
2026-05-18 17:51:50 +03:00
extension = File.extname(file.original_filename).delete_prefix('.').downcase
if Submitters::DANGEROUS_EXTENSIONS.include?(extension)
raise Submitters::MaliciousFileExtension, "File type '.#{extension}' is not allowed."
end
2024-06-02 17:06:09 +03:00
blob = ActiveStorage::Blob.create_and_upload!(io: file.open,
filename: file.original_filename,
content_type: file.content_type)
attachment = ActiveStorage::Attachment.create!(
blob:,
name: 'initials',
record: current_user
)
if @user_config.update(value: attachment.uuid)
2024-09-18 19:47:47 +03:00
redirect_to settings_profile_index_path, notice: I18n.t('initials_has_been_saved')
2024-06-02 17:06:09 +03:00
else
2024-09-18 19:47:47 +03:00
redirect_to settings_profile_index_path, notice: I18n.t('unable_to_save_initials')
2024-06-02 17:06:09 +03:00
end
end
def destroy
@user_config.destroy
2024-09-18 19:47:47 +03:00
redirect_to settings_profile_index_path, notice: I18n.t('initials_has_been_removed')
2024-06-02 17:06:09 +03:00
end
private
def load_user_config
@user_config =
UserConfig.find_or_initialize_by(user: current_user, key: UserConfig::INITIALS_KEY)
end
end