def login
session[:referer] = params[:referer] if params[:referer]
- if params[:username] || params[:openid_url]
- if params[:openid_url].present?
- session[:remember_me] ||= params[:remember_me_openid]
- redirect_to auth_url("openid", params[:openid_url])
- else
- session[:remember_me] ||= params[:remember_me]
- password_authentication(params[:username], params[:password])
- end
+ if params[:username].present? && params[:password].present?
+ session[:remember_me] ||= params[:remember_me]
+ password_authentication(params[:username], params[:password])
+ elsif params[:openid_url].present?
+ session[:remember_me] ||= params[:remember_me_openid]
+ redirect_to auth_url("openid", params[:openid_url])
end
end
else
user = User.find_by_display_name(params[:display_name])
- redirect_to root_path if !user || user.active?
+ redirect_to root_path if user.nil? || user.active?
end
end
def confirm_resend
- if user = User.find_by_display_name(params[:display_name])
+ user = User.find_by_display_name(params[:display_name])
+ token = UserToken.find_by_token(session[:token])
+
+ if user.nil? || token.nil? || token.user != user
+ flash[:error] = t "user.confirm_resend.failure", :name => params[:display_name]
+ else
Notifier.signup_confirm(user, user.tokens.create).deliver_now
flash[:notice] = t "user.confirm_resend.success", :email => user.email
- else
- flash[:error] = t "user.confirm_resend.failure", :name => params[:display_name]
end
redirect_to :action => "login"
# omniauth failure callback
def auth_failure
flash[:error] = t("user.auth_failure." + params[:message])
- redirect_to params[:origin]
+ redirect_to params[:origin] || login_url
end
private
##
#
def unconfirmed_login(user)
+ session[:token] = user.tokens.create.token
+
redirect_to :action => "confirm", :display_name => user.display_name
session.delete(:remember_me)