Module: Authentasaurus::RecoveriesController::InstanceMethods

Defined in:
lib/authentasaurus/recoveries_controller.rb

Instance Method Summary collapse

Instance Method Details

#createObject



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/authentasaurus/recoveries_controller.rb', line 19

def create
  @recovery = Recovery.find_or_initialize_by_email :email => params[:email]
  
  if @recovery.new_record?
    @recovery.user = User.find_by_email @recovery.email
  end
  
  respond_to do |format|
    if @recovery.save
      @recovery.touch
      format.html { redirect_to new_session_path, :notice => t(:recovery_email_sent, :scope => [:authentasaurus, :messages, :recoveries], :email => @recovery.email) }
    else
      format.html {render :new}
    end
  end  
end

#destroyObject



49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
# File 'lib/authentasaurus/recoveries_controller.rb', line 49

def destroy
  @recovery = Recovery.find_by_token params[:token]
  @user = @recovery.user

respond_to do |format|
	empty_fields = params[:user].select { |key, value| value.blank? }
	if !empty_fields.empty?
		empty_fields.each do |f|
			@user.errors.add_to_base t(:recovery_field_blank, :scope => [:authentasaurus, :messages, :recoveries], :field => f.first.humanize)
		end
		format.html { render :edit }
	elsif @user.update_attributes params[:user]
		@recovery.destroy
		format.html { redirect_to new_session_path, :notice => t(:recovery_successful, :scope => [:authentasaurus, :messages, :recoveries], :email => params[:email]) }
	else
	  flash.now[:alert] = t(:recovery_failed, :scope => [:authentasaurus, :messages, :recoveries],  :email => params[:email])
		format.html { render :edit }
	end
end
end

#editObject



36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/authentasaurus/recoveries_controller.rb', line 36

def edit
  @recovery = Recovery.valid.find_by_token(params[:token])
  
  respond_to do |format|
   unless @recovery.nil?
   	@user = @recovery.user
   	format.html
 	else
   	format.html { redirect_to new_session_path, :alert => t(:recovery_failed, :scope => [:authentasaurus, :messages, :recoveries], :email => params[:email]) }
 	end
	end
end

#newObject



11
12
13
14
15
16
17
# File 'lib/authentasaurus/recoveries_controller.rb', line 11

def new
  @recovery = Recovery.new
  
  respond_to do |format|
    format.html
  end
end