Created
September 23, 2011 15:53
-
-
Save rubytastic/1237731 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
routes | |
--------------------------- | |
devise_for :users do | |
get "/login" => "devise/sessions#new" | |
get "/logout" => "devise/sessions#destroy" | |
get "/signup" => "registrations#new" | |
get "/signup/:invitation_token" => "registrations#new" | |
get "/register/confirm" => "registrations#confirm" | |
get "/register/confirmed" => "registrations#confirmed" | |
get "/register/photos" => "registrations#photos" | |
get "/register/import" => "registrations#import" | |
#get '/signup/confirm' => "registrations#confirm" #not working | |
#get "/account" => "registrations#edit" | |
end | |
registrationscontroller: | |
---------------------------- | |
class RegistrationsController < Devise::RegistrationsController | |
prepend_before_filter :require_no_authentication, :only => [:new, :create, :cancel] | |
prepend_before_filter :authenticate_scope!, :only => [:edit, :update, :destroy] | |
include Devise::Controllers::InternalHelpers | |
# GET /resource/sign_up | |
def new | |
resource = build_resource({}) | |
respond_with_navigational(resource) { render_with_scope :new } | |
end | |
# POST /resource | |
def create | |
build_resource | |
if resource.save | |
if resource.active_for_authentication? | |
set_flash_message :notice, :signed_up if is_navigational_format? | |
sign_in(resource_name, resource) | |
respond_with resource, :location => redirect_location(resource_name, 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 => after_inactive_sign_up_path_for(resource) | |
end | |
else | |
clean_up_passwords(resource) | |
respond_with_navigational(resource) { render_with_scope :new } | |
end | |
end | |
# GET /resource/edit | |
def edit | |
render_with_scope :edit | |
end | |
# PUT /resource | |
# We need to use a copy of the resource because we don't want to change | |
# the current user in place. | |
def update | |
self.resource = resource_class.to_adapter.get!(send(:"current_#{resource_name}").to_key) | |
if resource.update_with_password(params[resource_name]) | |
set_flash_message :notice, :updated if is_navigational_format? | |
sign_in 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 | |
# DELETE /resource | |
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 | |
# 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. | |
def cancel | |
expire_session_data_after_sign_in! | |
redirect_to new_registration_path(resource_name) | |
end | |
#registration steps | |
def confirm | |
def sub_layout | |
"right" | |
end | |
end | |
def confirmed | |
def sub_layout | |
"right" | |
end | |
end | |
def photos | |
def sub_layout | |
"right" | |
end | |
end | |
def import | |
def sub_layout | |
"right" | |
end | |
end | |
protected | |
# Build a devise resource passing in the session. Useful to move | |
# temporary session data to the newly created user. | |
def build_resource(hash=nil) | |
hash ||= params[resource_name] || {} | |
self.resource = resource_class.new_with_session(hash, session) | |
end | |
# The path used after sign up. You need to overwrite this method | |
# in your own RegistrationsController. | |
def after_sign_up_path_for(resource) | |
"/confirm" | |
end | |
# Overwrite redirect_for_sign_in so it takes uses after_sign_up_path_for. | |
def redirect_location(scope, resource) | |
stored_location_for(scope) || after_sign_up_path_for(resource) | |
end | |
# Returns the inactive reason translated. | |
def inactive_reason(resource) | |
reason = resource.inactive_message.to_s | |
I18n.t("devise.registrations.reasons.#{reason}", :default => reason) | |
end | |
# The path used after sign up for inactive accounts. You need to overwrite | |
# this method in your own RegistrationsController. | |
def after_inactive_sign_up_path_for(resource) | |
"/confirmed" | |
end | |
# The default url to be used after updating a resource. You need to overwrite | |
# this method in your own RegistrationsController. | |
def after_update_path_for(resource) | |
if defined?(super) | |
ActiveSupport::Deprecation.warn "Defining after_update_path_for in ApplicationController " << | |
"is deprecated. Please add a RegistrationsController to your application and define it there." | |
super | |
else | |
after_sign_in_path_for(resource) | |
end | |
end | |
# Authenticates the current scope and gets the current resource from the session. | |
def authenticate_scope! | |
send(:"authenticate_#{resource_name}!", true) | |
self.resource = send(:"current_#{resource_name}") | |
end | |
end | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment