Class: Devise::RegistrationsController

Inherits:
ApplicationController
  • Object
show all
Includes:
Controllers::InternalHelpers
Defined in:
app/controllers/devise/registrations_controller.rb

Constant Summary

Constants included from Controllers::SharedHelpers

Controllers::SharedHelpers::MIME_REFERENCES

Instance Method Summary collapse

Methods included from Controllers::InternalHelpers

#devise_controller?, #devise_mapping, #resource, #resource_class, #resource_name, #signed_in_resource

Instance Method Details

#cancelObject

GET /resource/cancel Forces the session data which is usually expired after sign in to be expired now. This is useful if the user wants to cancel oauth signing in/up in the middle of the process, removing all OAuth session data.



71
72
73
74
# File 'app/controllers/devise/registrations_controller.rb', line 71

def cancel
  expire_session_data_after_sign_in!
  redirect_to new_registration_path(resource_name)
end

#createObject

POST /resource



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'app/controllers/devise/registrations_controller.rb', line 13

def create
  build_resource

  if resource.save
    if resource.active_for_authentication?
      set_flash_message :notice, :signed_up if is_navigational_format?
      (resource_name, resource)
      respond_with resource, :location => (resource)
    else
      set_flash_message :notice, :inactive_signed_up, :reason => inactive_reason(resource) if is_navigational_format?
      expire_session_data_after_sign_in!
      respond_with resource, :location => (resource)
    end
  else
    clean_up_passwords(resource)
    respond_with_navigational(resource) { render_with_scope :new }
  end
end

#destroyObject

DELETE /resource



59
60
61
62
63
64
# File 'app/controllers/devise/registrations_controller.rb', line 59

def destroy
  resource.destroy
  Devise.sign_out_all_scopes ? sign_out : sign_out(resource_name)
  set_flash_message :notice, :destroyed if is_navigational_format?
  respond_with_navigational(resource){ redirect_to after_sign_out_path_for(resource_name) }
end

#editObject

GET /resource/edit



33
34
35
# File 'app/controllers/devise/registrations_controller.rb', line 33

def edit
  render_with_scope :edit
end

#newObject

GET /resource/sign_up



7
8
9
10
# File 'app/controllers/devise/registrations_controller.rb', line 7

def new
  resource = build_resource({})
  respond_with_navigational(resource){ render_with_scope :new }
end

#updateObject

PUT /resource We need to use a copy of the resource because we don’t want to change the current user in place.



40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'app/controllers/devise/registrations_controller.rb', line 40

def update
  self.resource = resource_class.to_adapter.get!(send(:"current_#{resource_name}").to_key)

  if resource.update_with_password(params[resource_name])
    if is_navigational_format?
      if resource.respond_to?(:pending_reconfirmation?) && resource.pending_reconfirmation?
        flash_key = :update_needs_confirmation
      end
      set_flash_message :notice, flash_key || :updated
    end
     resource_name, resource, :bypass => true
    respond_with resource, :location => after_update_path_for(resource)
  else
    clean_up_passwords(resource)
    respond_with_navigational(resource){ render_with_scope :edit }
  end
end