我有一个rails应用程序,我想以受控方式管理对应用程序的访问。 客户端用户只能访问应用程序中的某些视图,而管理员可以访问任何页面。 将来,我还可能会添加一些可能访问管理员访问的页面子集的半管理员。 我已经有了登录身份验证,但我想要一个更好的解决方案来控制用户访问我的应用程序中的某些页面。
答案 0 :(得分:2)
users_controller.rb
class UsersController < ApplicationController
before_filter :login_required, :except=>[:show]
before_filter :required_admin, :only=>[:all_users]
def show
end
def all_users
end
def edit
end
end
application_controller.rb
class ApplicationController < ActionController::Base
def current_user
session[:user]
end
def login_required
if current_user
return true
else
flash[:notice]='Please login to continue.'
redirect_to :controller => "logins"
end
end
def required_admin
if current_user && current_user.is_admin? #check here if current user is admin or not
return true
else
flash[:notice]='Please login as admin.'
redirect_to :controller => "logins"
end
end
end
显示方法可以看到任何人与&amp;没有登录
只有管理员才能看到all_users方法
编辑方法可以看到任何登录用户(即用户管理员)
答案 1 :(得分:2)