分别验证用户和管理员
问题描述:
基本上我的管理员和用户在我的应用程序中。在这里用户签名后,它也是路由user_dashboard,但如果我作出admin_dashboard更改网址,它也得到路由。我怎样才能停止分别验证用户和管理员
类似地,如果管理员获得登录它也路由到Admin_dashboard,但如果我作出user_dashboard它的路由更改URL。我怎么能限制
class ApplicationController < ActionController::Base
protect_from_forgery
skip_before_filter :authenticate_user! , :only => ["welcome#index"]
def after_sign_in_path_for(user)
user_dashboard_index_path
end
def after_sign_out_path_for(user)
welcome_index_path
end
end
答
我相信这样做的方法是override the devise before
and after_sign_in_path_for
helpers
我认为(from what I've read),您可以用逻辑来确定处理的最佳方式:
def after_sign_in_path_for(resource)
stored_location_for(resource) ||
if resource.is_a?(Admin)
admin_dashboard_path
else
user_path(resource)
end
end
你可以使用像active_admin的宝石...?或者你可以在控制器中创建一个动作,并在你的控制器中添加before_filter选项...在这个动作中,你可以把你的相关代码放到你的屏幕上。 – sp1rs
如果你正在使用devise gem,你也可以为用户和管理员创建一个范围。如果你想要你的管理员和用户都分别然后用户认证使用设计和管理面板使用Active-Admin Gem。 – SSR
你如何识别你的管理员和用户?你有什么领域? – SSR