I'm using devise for authentication, however I cant see and action filter for specifying actions that require the user to login, is this included in the devise gem? if not how could I create one, I kind of have an idea but since I'm new to rails I'd rather see a solution from a more experienced programmer first.
current_user works by storing id of current user in the application session. Most commonly session is stored in cookies. Whether or not the cookies survive browser restart depends on client's browser settings.
Warden is a gem that takes care of fetching authentication details from the request and fetching the user. Devise requires Warden to be added as a middleware.
See the Devise Readme.
class PostsController < ApplicationController
respond_to :html
# Tell Devise that the #destroy action is
# special, and that the user must be
# authenticated in order to access the
# #desroy action.
# Note that the name of the method here,
# #authenticate_user!, depends on the
# particular class/table that you have
# set up to be managed with Devise.
before_filter :authenticate_user!,
:only => [:destroy]
before_filter :find_post!,
:only => [:destroy]
def destroy
@post.destroy
respond_with @post
end
private
def find_post!
@post = Post.find(params[:id])
end
end
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With