sideplace_app/app/controllers/public/annonce_accounts_controller.rb

233 lines
6.0 KiB
Ruby

class Public::AnnonceAccountsController < ApplicationController
layout "public"
before_filter :auth_annonce_account, :except => [:new, :create, :confirm, :show, :parrainage, :find_parrain]
def parrainage
cookies.permanent[:mlm_token] = params[:mlm_token]
redirect_to "/"
end
def index
@annonce_accounts = AnnonceAccount.all
end
def show
per_page = (params[:per_page] and params[:per_page] != "") ? params[:per_page] : 10
page = (params[:page] and params[:page] != "") ? params[:page] : 1
@annonce_account = AnnonceAccount.enableds.find_by_id(params[:id])
if @annonce_account
@annonces = @annonce_account.annonces.valid_to_show.order("list_head DESC, created_at DESC").page(page).per(per_page).all
end
end
def new
if params[:r] and params[:r] != ""
session[:before_auth_url] = nil
end
@no_search = true
if params[:for_annonce] and params[:for_annonce] != ""
session[:for_annonce] = true
params[:step] = "login"
else
session[:for_annonce] = nil
params[:for_annonce] = nil
end
params[:for_mail] =nil if params[:for_mail] == ""
@annonce_account = AnnonceAccount.new()
if cookies[:mlm_token] and @parent = AnnonceAccount.find_parrain(cookies[:mlm_token])
@annonce_account.parent_code = @parent.mlm_token.upcase
elsif params[:p] and @parent = AnnonceAccount.find_parrain(params[:p])
@annonce_account.parent_code = @parent.mlm_token.upcase
end
end
def show_details
@no_search = true
if current_annonce_account.mlm_children_ids.include?(params[:id].to_i)
@annonce_account = AnnonceAccount.find(params[:id])
end
end
def edit
@annonce_account = AnnonceAccount.find(params[:id])
end
def find_parrain
@parent = AnnonceAccount.find_parrain(params[:parent_code])
if @parent
cookies.permanent[:mlm_token] = @parent.mlm_token
else
cookies.permanent[:mlm_token] = nil
end
end
def create
params[:for_annonce] =nil if params[:for_annonce] == ""
params[:for_mail] =nil if params[:for_mail] == ""
params[:step] = "login"
@no_search = true
@annonce_account = AnnonceAccount.new(params.require(:annonce_account).permit!)
@annonce_account.remote_ip = request.remote_ip
@parent = AnnonceAccount.find_parrain(@annonce_account.parent_code)
if @annonce_account.save
IpHistory.create(:element => @annonce_account, :annonce_account => @annonce_account, :remote_ip => request.remote_ip)
AnnonceAccountMailer.confirm(@annonce_account).deliver
if @parent
AnnonceAccountMailer.new_user(@annonce_account).deliver
end
@annonce_account.authenticate(params[:password])
cookies[:annonce_account_auth_token] = @annonce_account.token
if session[:for_annonce]
session[:for_annonce] =nil
redirect_to new_public_annonce_path(:ins => "ins_finish"), notice: "Vous êtes désormais inscrit."
elsif session[:before_auth_url]
url = session[:before_auth_url]
session[:before_auth_url] = nil
redirect_to url
else
redirect_to public_my_account_path(:ins => "ins_finish"), notice: "Vous êtes désormais inscrit."
end
else
render :action => "new"
end
end
def confirm
@annonce_account = AnnonceAccount.find_by_token(params[:id])
@annonce_account.enabled = true
@annonce_account.save(:validate => false)
cookies[:annonce_account_auth_token] = @annonce_account.token
redirect_to public_my_account_path
#redirect_to "/"
end
def update
@annonce_account = AnnonceAccount.find(params[:id])
if params[:order]
@annonce_account.force_address = true
end
if @annonce_account == current_annonce_account
if @annonce_account.update_attributes(params.require(:annonce_account).permit!)
if params[:order]
if params[:credit_product_id]
@credit_product = CreditProduct.find(params[:credit_product_id])
@order = Order.new(:devise => @credit_product.devise)
session[:order] = @order
session[:order].credit_product = @credit_product
elsif session[:order]
@order = Order.new(session[:order])
else
end
@annonce_account = current_annonce_account
@order.annonce_account = @annonce_account
render :template => "public/orders/new"
else
redirect_to public_my_account_path
end
else
if params[:order]
@order = Order.new(session[:order])
render :template => "public/orders/billing"
else
render :template => "public/my_account/edit_infos"
end
end
end
end
def destroy
#@annonce_account = AnnonceAccount.find(params[:id])
#@annonce_account.destroy
end
def mail
@no_search = true
@annonce_account = AnnonceAccount.enableds.find_by_id(params[:id])
if @annonce_account
@annonce_message = AnnonceMessage.new(:destinataire => @annonce_account)
if params[:annonce_id]
if current_annonce_account and @annonce = current_annonce_account.annonces.find_by_id(params[:annonce_id])
elsif current_admin
@annonce = Annonce.find(params[:annonce_id])
else
@annonce = Annonce.valid_to_show.find_by_id(params[:annonce_id])
end
if @annonce
@annonce_message.annonce = @annonce
else
@annonce_invalide = true
end
end
@annonce_message.expediteur = current_annonce_account if current_annonce_account
if @annonce_message.expediteur
@annonce_message.expediteur_mail = current_annonce_account.email
@annonce_message.tel = current_annonce_account.tel_number
end
end
end
end