class Public::DocumentsController < ApplicationController layout "public" before_filter :auth_customer before_filter :check_enabled before_filter :check_owner def index @documents = @accepted_offer.documents end def download @document = @accepted_offer.documents.find(params[:id]) if @document.state == 'document_available' @document.state = :document_downloaded @document.save admins = Admin.where.not(email: nil) admins.each do |admin| AdminMailer.customer_download_document(admin, @document, current_customer).deliver end end send_file @document.document.file.path end def download_returned @document = @accepted_offer.documents.find(params[:id]) send_file @document.returned_document.file.path end def destroy_returned @document = @accepted_offer.documents.find(params[:id]) if @document.returned_document? @document.remove_returned_document! end @document.state = :document_downloaded if @document.save flash[:success] = "Document chargé" else flash[:success] = "Impossible de supprimer le document" end redirect_to :back end def upload_returned if !params[:returned_document] flash[:error] = "Vous devez sélectionner un fichier" else @document = @accepted_offer.documents.find(params[:id]) @document.returned_document = params[:returned_document] if @document.save @document.state = :document_returned @document.save admins = Admin.where.not(email: nil) admins.each do |admin| AdminMailer.customer_upload_document(admin, @document, current_customer).deliver end flash[:success] = "Document chargé" else flash[:error] = "Impossible de charger le document" end end redirect_to :back end def check_owner @accepted_offer = AcceptedOffer.find(params[:accepted_offer_id]) if @accepted_offer.customer.id != current_customer.id flash[:error] = "Vous n'avez pas la permission d'accéder à cette page" redirect_back_or_default :root end end end