Class: Devise::RegistrationsController
- Inherits:
-
DeviseController
- Object
- DeviseController
- Devise::RegistrationsController
- Defined in:
- app/controllers/devise/registrations_controller.rb
Instance Method Summary collapse
- #account_update_params ⇒ Object protected
-
#after_inactive_sign_up_path_for(resource) ⇒ Object
protected
The path used after sign up for inactive accounts.
-
#after_sign_up_path_for(resource) ⇒ Object
protected
The path used after sign up.
-
#after_update_path_for(resource) ⇒ Object
protected
The default url to be used after updating a resource.
-
#authenticate_scope! ⇒ Object
protected
Authenticates the current scope and gets the current resource from the session.
-
#build_resource(hash = nil) ⇒ Object
protected
Build a devise resource passing in the session.
-
#cancel ⇒ Object
GET /resource/cancel Forces the session data which is usually expired after sign in to be expired now.
-
#create {|resource| ... } ⇒ Object
POST /resource.
-
#destroy {|resource| ... } ⇒ Object
DELETE /resource.
-
#edit ⇒ Object
GET /resource/edit.
-
#new {|resource| ... } ⇒ Object
GET /resource/sign_up.
-
#sign_up(resource_name, resource) ⇒ Object
protected
Signs in a user on sign up.
- #sign_up_params ⇒ Object protected
- #translation_scope ⇒ Object protected
-
#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.
- #update_needs_confirmation?(resource, previous) ⇒ Boolean protected
-
#update_resource(resource, params) ⇒ Object
protected
By default we want to require a password checks on update.
Instance Method Details
#account_update_params ⇒ Object (protected)
141 142 143 |
# File 'app/controllers/devise/registrations_controller.rb', line 141 def account_update_params 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.
118 119 120 121 122 123 |
# File 'app/controllers/devise/registrations_controller.rb', line 118 def after_inactive_sign_up_path_for(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.
112 113 114 |
# File 'app/controllers/devise/registrations_controller.rb', line 112 def after_sign_up_path_for(resource) after_sign_in_path_for(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.
127 128 129 |
# File 'app/controllers/devise/registrations_controller.rb', line 127 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.
132 133 134 135 |
# File 'app/controllers/devise/registrations_controller.rb', line 132 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.
100 101 102 |
# File 'app/controllers/devise/registrations_controller.rb', line 100 def build_resource(hash=nil) self.resource = resource_class.new_with_session(hash || {}, session) end |
#cancel ⇒ Object
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.
79 80 81 82 |
# File 'app/controllers/devise/registrations_controller.rb', line 79 def cancel expire_data_after_sign_in! redirect_to new_registration_path(resource_name) end |
#create {|resource| ... } ⇒ Object
POST /resource
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(sign_up_params) resource.save yield resource if block_given? if resource.persisted? if resource.active_for_authentication? :notice, :signed_up sign_up(resource_name, resource) respond_with resource, location: after_sign_up_path_for(resource) else :notice, :"signed_up_but_#{resource.}" expire_data_after_sign_in! respond_with resource, location: after_inactive_sign_up_path_for(resource) end else clean_up_passwords resource set_minimum_password_length respond_with resource end end |
#destroy {|resource| ... } ⇒ Object
DELETE /resource
66 67 68 69 70 71 72 |
# File 'app/controllers/devise/registrations_controller.rb', line 66 def destroy resource.destroy Devise.sign_out_all_scopes ? sign_out : sign_out(resource_name) :notice, :destroyed yield resource if block_given? (resource){ redirect_to after_sign_out_path_for(resource_name) } end |
#edit ⇒ Object
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
7 8 9 10 11 |
# File 'app/controllers/devise/registrations_controller.rb', line 7 def new build_resource({}) yield resource if block_given? respond_with 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.
106 107 108 |
# File 'app/controllers/devise/registrations_controller.rb', line 106 def sign_up(resource_name, resource) sign_in(resource_name, resource) end |
#sign_up_params ⇒ Object (protected)
137 138 139 |
# File 'app/controllers/devise/registrations_controller.rb', line 137 def sign_up_params devise_parameter_sanitizer.sanitize(:sign_up) end |
#translation_scope ⇒ Object (protected)
145 146 147 |
# File 'app/controllers/devise/registrations_controller.rb', line 145 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.
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
# 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, account_update_params) 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 :notice, flash_key end bypass_sign_in resource, scope: resource_name respond_with resource, location: after_update_path_for(resource) else clean_up_passwords resource set_minimum_password_length respond_with resource end end |
#update_needs_confirmation?(resource, previous) ⇒ Boolean (protected)
86 87 88 89 90 |
# File 'app/controllers/devise/registrations_controller.rb', line 86 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.
94 95 96 |
# File 'app/controllers/devise/registrations_controller.rb', line 94 def update_resource(resource, params) resource.update_with_password(params) end |