Restful_authentication: redirecting if already logged in

Hi,

If someone is already logged in, I would like to redirect them to a
different page. I have that code in my app/controllers/
register_controller.rb file:

class RegisterController < ApplicationController

def start
if (logged_in?)
redirect_to :controller => “order”, :action =>
“start”
end
end

end

but I’m getting an error if someone is not logged in. Visiting
http://mydomain.com/register/start gives this error:

NoMethodError in RegisterController#start
undefined method `authenticate_with_http_basic’ for
#RegisterController:0xb75ed528
RAILS_ROOT: ./script/…/config/…
Application Trace | Framework Trace | Full Trace

/usr/local/apache2/htdocs/easyrx/lib/authenticated_system.rb:102:in
login_from_basic_auth' /usr/local/apache2/htdocs/easyrx/lib/authenticated_system.rb:12:in current_user’

/usr/local/apache2/htdocs/easyrx/lib/authenticated_system.rb:6:in
logged_in?' /usr/local/apache2/htdocs/easyrx/app/controllers/ register_controller.rb:40:in start’

The method in question is located in lib/authenticated_system.rb, and
I’ve included that in my app/controllers/application.rb file:

class ApplicationController < ActionController::Base

Be sure to include AuthenticationSystem in Application Controller

instead
include AuthenticatedSystem

What does the error mean and how can I resolve it? Thanks, - Dave

looks like you are not using rails 2. You’ll need to be on rails 2 to
use the current incarnation of restful_authentication, as it uses the
new built in http authentication classes.
Also, your whole controller structure doesn’t look very RESTful! Start
now and be happy later.

Once you find a version of REStful_authentication that works with
Rails 1.2.x or update to Rails 2 see what the #create method does in
the (default) sessions controller to see how best to use the
logged_in? helper to check the login status, use RESTful or named
routes to do your redirect! (you’ll thank me later)

Joe

On Jan 29, 7:34 pm, “[email protected]

Any chance you have multiple versions of rails and you’re dealing with
an older project that you started in 1.x? If that’s the case then I’d
check the rails version in environment.rb – you may still be running
your app on 1.x even with 2.x installed. (BTW, I get the same
response with rails --version and i’ve got six versions of the
framework installed).

On Jan 29, 6:43 pm, “[email protected]

Hi,

According to my command prompt

[me@mymachine]~/% rails --version
Rails 2.0.2

I’m using Rails 2. What else could it be? And please throw in any
suggestions that would make my controller more RESTful.

Thanks, - Dave