mirror of https://github.com/docusealco/docuseal
				
				
				
			
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							57 lines
						
					
					
						
							1.6 KiB
						
					
					
				
			
		
		
	
	
							57 lines
						
					
					
						
							1.6 KiB
						
					
					
				| # frozen_string_literal: true
 | |
| 
 | |
| ActiveSupport.on_load(:active_storage_attachment) do
 | |
|   attribute :uuid, :string, default: -> { SecureRandom.uuid }
 | |
| 
 | |
|   has_many_attached :preview_images
 | |
| 
 | |
|   def signed_uuid
 | |
|     @signed_uuid ||= ApplicationRecord.signed_id_verifier.generate(uuid, expires_in: 6.hours)
 | |
|   end
 | |
| 
 | |
|   def preview_image_url
 | |
|     preview_images.joins(:blob).find_by(blob: { filename: '0.jpg' })&.url
 | |
|   end
 | |
| end
 | |
| 
 | |
| ActiveSupport.on_load(:active_storage_blob) do
 | |
|   def delete
 | |
|     service.delete(key)
 | |
|   end
 | |
| end
 | |
| 
 | |
| ActiveStorage::LogSubscriber.detach_from(:active_storage) if Rails.env.production?
 | |
| 
 | |
| Rails.configuration.to_prepare do
 | |
|   ActiveStorage::DiskController.after_action do
 | |
|     response.set_header('Cache-Control', 'public, max-age=31536000') if action_name == 'show'
 | |
|   end
 | |
| 
 | |
|   ActiveStorage::Blobs::ProxyController.before_action do
 | |
|     response.set_header('Access-Control-Allow-Origin', '*')
 | |
|     response.set_header('Access-Control-Allow-Methods', 'GET')
 | |
|     response.set_header('Access-Control-Allow-Headers', '*')
 | |
|     response.set_header('Access-Control-Max-Age', '1728000')
 | |
|   end
 | |
| 
 | |
|   ActiveStorage::Blobs::RedirectController.before_action do
 | |
|     response.set_header('Access-Control-Allow-Origin', '*')
 | |
|     response.set_header('Access-Control-Allow-Methods', 'GET')
 | |
|     response.set_header('Access-Control-Allow-Headers', '*')
 | |
|     response.set_header('Access-Control-Max-Age', '1728000')
 | |
|   end
 | |
| 
 | |
|   ActiveStorage::DirectUploadsController.before_action do
 | |
|     next if current_user
 | |
|     next if Submitter.find_signed(cookies[:submitter_sid])
 | |
| 
 | |
|     head :forbidden
 | |
|   end
 | |
| 
 | |
|   LoadActiveStorageConfigs.call
 | |
| rescue StandardError => e
 | |
|   Rails.logger.error(e)
 | |
| 
 | |
|   nil
 | |
| end
 |