I have Users that have a boolean attribute “Admin”.
What I did is basically : “if admin attribute is set on false, then a
writing appears telling that ‘you must be an admin to see this zone’”.
I wanted to organize things differently, for example:
“if the logged user is logged, and if he has an Admin-attribute set on
true, then he may get to the requested aministration page, else, he’ll
be redirected at login page”.
I have a current_user method :
def current_user @current_user ||= User.find(session[:user_id]) if session[:user_id]
end
but I tried to add it into the controller, the model and application
controller, with just getting error.
if you are building athentication from scratch this method can be
accessed
by the controller and views by putting that method in the
application_controller and adding
def current_user @current_user ||= User.find(session[:user_id]) if session[:user_id]
end
helper_method :current_user
this will make it available to other controllers and views, session data
is
not accesible from the models.
What you want to do is done with a before filter in the controller like
this:
at the top of the controllers you add
before_filter :check_if_cool_enough
at the bottom
private
def check_if_cool_enough
if current_user.admin?
flash[:notice] = “YOU ARE SOOO COOL”
else
flash[:error] = “omg, lol noob”
redirect_to root_path
end
end
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.