negos_app/app/controllers/public/customers_controller.rb
2017-05-18 01:21:04 +02:00

161 lines
3.4 KiB
Ruby
Executable File

class Public::CustomersController < ApplicationController
layout "public"
before_filter :auth_customer, :except => [:new, :create, :confirm, :show, :parrainage, :mail, :find_parrain]
def parrainage
cookies.permanent[:mlm_token] = params[:mlm_token]
redirect_to "/"
end
def index
@customers = Customer.all
end
def show
@customer = current_customer.own_customers.find(params[:id])
end
def new
@customer = Customer.new()
if cookies[:mlm_token] and @parent = Customer.find_parrain(cookies[:mlm_token])
@customer.parent_code = @parent.mlm_token.upcase
elsif params[:p] and @parent = Customer.find_parrain(params[:p])
@customer.parent_code = @parent.mlm_token.upcase
end
end
def show_details
@no_search = true
if current_customer.mlm_children_ids.include?(params[:id].to_i)
@customer = Customer.find(params[:id])
end
end
def edit
@customer = Customer.find(params[:id])
end
def create
params[:step] = "login"
@no_search = true
@customer = Customer.new(params.require(:customer).permit!)
if @customer.save
CustomerMailer.confirm(@customer).deliver
CustomerMailer.notify_ins(@customer).deliver
@customer.authenticate(params[:password])
cookies[:customer_auth_token] = @customer.token
if session[:for_annonce]
redirect_to new_public_annonce_path(:ins => "ins_finish"), notice: "Vous êtes désormais inscrit."
else
redirect_to public_my_account_path(:ins => "ins_finish"), notice: "Vous êtes désormais inscrit."
end
if cookies[:video_read] == "true"
flash[:read_video] = false
else
cookies.permanent[:video_read] = "true"
flash[:read_video] = true
end
else
render :action => "new"
end
end
def confirm
@customer = Customer.find_by_token(params[:id])
@customer.enabled = true
@customer.save(:validate => false)
CustomerMailer.confirm_ins(@customer).deliver
cookies[:customer_auth_token] = @customer.token
redirect_to public_my_account_path, notice: "Votre adresse mail a bien été validée, merci beaucoup."
#redirect_to "/"
end
def update
@customer = Customer.find(params[:id])
@accepted_offers = @customer.accepted_offers.order(created_at: :desc).page(params[:page_offers]).per(5)
@wishes = @customer.wishes.includes(:need).page(params[:page_wishes]).per(5)
@needs = Kaminari.paginate_array(@customer.owned_needs.order(created_at: :desc))
.page(params[:page_needs])
.per(5)
if params[:order]
@customer.force_address = true
end
if @customer == current_customer
if @customer.update_attributes(params.require(:customer).permit!)
flash[:success] = "Vos informations ont bien été enregistrées"
redirect_to public_my_account_path
else
flash[:error] = "Certains champs sont invalides"
render :template => "public/my_account/edit_infos"
end
end
end
def mail
@no_search = true
@customer = Customer.find_by_id(params[:id])
if @customer
@customer_message = CustomerMessage.new(:destinataire => @customer)
@customer_message.expediteur = current_customer if current_customer
if @customer_message.expediteur
@customer_message.expediteur_mail = current_customer.email
end
end
end
end