Class: Devise::RegistrationsController

Inherits:
DeviseController show all
Defined in:
app/controllers/devise/registrations_controller.rb

Instance Method Summary collapse

Instance Method Details

#account_update_paramsObject (protected)



140
141
142
# File 'app/controllers/devise/registrations_controller.rb', line 140

def 
  devise_parameter_sanitizer.sanitize(:account_update)
end

#after_inactive_sign_up_path_for(resource) ⇒ Object (protected)

The path used after sign up for inactive accounts. You need to overwrite this method in your own RegistrationsController.



117
118
119
120
121
122
# File 'app/controllers/devise/registrations_controller.rb', line 117

def (resource)
  scope = Devise::Mapping.find_scope!(resource)
  router_name = Devise.mappings[scope].router_name
  context = router_name ? send(router_name) : self
  context.respond_to?(:root_path) ? context.root_path : "/"
end

#after_sign_up_path_for(resource) ⇒ Object (protected)

The path used after sign up. You need to overwrite this method in your own RegistrationsController.



111
112
113
# File 'app/controllers/devise/registrations_controller.rb', line 111

def (resource)
  (resource)
end

#after_update_path_for(resource) ⇒ Object (protected)

The default url to be used after updating a resource. You need to overwrite this method in your own RegistrationsController.



126
127
128
# File 'app/controllers/devise/registrations_controller.rb', line 126

def after_update_path_for(resource)
  signed_in_root_path(resource)
end

#authenticate_scope!Object (protected)

Authenticates the current scope and gets the current resource from the session.



131
132
133
134
# File 'app/controllers/devise/registrations_controller.rb', line 131

def authenticate_scope!
  send(:"authenticate_#{resource_name}!", force: true)
  self.resource = send(:"current_#{resource_name}")
end

#build_resource(hash = nil) ⇒ Object (protected)

Build a devise resource passing in the session. Useful to move temporary session data to the newly created user.



99
100
101
# File 'app/controllers/devise/registrations_controller.rb', line 99

def build_resource(hash=nil)
  self.resource = resource_class.new_with_session(hash || {}, session)
end

#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.



78
79
80
81
# File 'app/controllers/devise/registrations_controller.rb', line 78

def cancel
  expire_data_after_sign_in!
  redirect_to new_registration_path(resource_name)
end

#create {|resource| ... } ⇒ Object

POST /resource

Yields:



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

def create
  build_resource()

  resource.save
  yield resource if block_given?
  if resource.persisted?
    if resource.active_for_authentication?
      set_flash_message :notice, :signed_up if is_flashing_format?
      (resource_name, resource)
      respond_with resource, location: (resource)
    else
      set_flash_message :notice, :"signed_up_but_#{resource.inactive_message}" if is_flashing_format?
      expire_data_after_sign_in!
      respond_with resource, location: (resource)
    end
  else
    clean_up_passwords resource
    set_minimum_password_length
    respond_with resource
  end
end

#destroy {|resource| ... } ⇒ Object

DELETE /resource

Yields:



65
66
67
68
69
70
71
# File 'app/controllers/devise/registrations_controller.rb', line 65

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

#editObject

GET /resource/edit



37
38
39
# File 'app/controllers/devise/registrations_controller.rb', line 37

def edit
  render :edit
end

#new {|resource| ... } ⇒ Object

GET /resource/sign_up

Yields:



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

def new
  build_resource({})
  set_minimum_password_length
  yield resource if block_given?
  respond_with self.resource
end

#sign_up(resource_name, resource) ⇒ Object (protected)

Signs in a user on sign up. You can overwrite this method in your own RegistrationsController.



105
106
107
# File 'app/controllers/devise/registrations_controller.rb', line 105

def (resource_name, resource)
  (resource_name, resource)
end

#sign_up_paramsObject (protected)



136
137
138
# File 'app/controllers/devise/registrations_controller.rb', line 136

def 
  devise_parameter_sanitizer.sanitize(:sign_up)
end

#translation_scopeObject (protected)



144
145
146
# File 'app/controllers/devise/registrations_controller.rb', line 144

def translation_scope
  'devise.registrations'
end

#update {|resource| ... } ⇒ Object

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

Yields:



44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# File 'app/controllers/devise/registrations_controller.rb', line 44

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

  resource_updated = update_resource(resource, )
  yield resource if block_given?
  if resource_updated
    if is_flashing_format?
      flash_key = update_needs_confirmation?(resource, prev_unconfirmed_email) ?
        :update_needs_confirmation : :updated
      set_flash_message :notice, flash_key
    end
     resource_name, resource, bypass: true
    respond_with resource, location: after_update_path_for(resource)
  else
    clean_up_passwords resource
    respond_with resource
  end
end

#update_needs_confirmation?(resource, previous) ⇒ Boolean (protected)

Returns:

  • (Boolean)


85
86
87
88
89
# File 'app/controllers/devise/registrations_controller.rb', line 85

def update_needs_confirmation?(resource, previous)
  resource.respond_to?(:pending_reconfirmation?) &&
    resource.pending_reconfirmation? &&
    previous != resource.unconfirmed_email
end

#update_resource(resource, params) ⇒ Object (protected)

By default we want to require a password checks on update. You can overwrite this method in your own RegistrationsController.



93
94
95
# File 'app/controllers/devise/registrations_controller.rb', line 93

def update_resource(resource, params)
  resource.update_with_password(params)
end