I'd like to return a HTTP 401 error as part of my permission_denied
method for declarative_authorization.
# triggered when a user accesses a page that they don't have access to
def permission_denied
# render my default 401 error page?
end
How would I do this? (Pardon the question if it's stupid... I know how to render the 401.html page in my public directory, but I don't think it returns the 401 HTTP header, which is what I'm after.)
You can add the :status
option
def permission_denied
render :file => "public/401.html", :status => :unauthorized
end
Here so you don't have to dig through comments for a modern answer.
The previous answer has been deprecated in Rails 5.1
Throw any of these into your controller action:
render :file => "public/401", :status => :unauthorized
render status: :unauthorized, json: { error: "You are not authorized to access this resource. Verify that you are passing passing your token." }
head :unauthorized
See ActionController#head
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