我在rails应用程序前面使用单一登录身份验证系统,因此在通过我们的业务身份验证系统进行身份验证之前,您根本无法访问该应用程序。
一旦经过身份验证,我想设置基于角色的授权,但我相信我仍然需要设置某种用户模型才能实现。
我热衷于使用cancan进行授权,并且可能使用角色的简单角色。但是如何注册当前登录的用户呢?到目前为止,我一直在访问会话变量。
我无法使用角色的会话变量,因为我对单点登录系统没有任何控制权。
我已经搜索了一些简单但如何找不到的。
答案 0 :(得分:0)
我为管理员创建了一个控制器,并将所有管理员用户输入到该管理员中,并且我只是实施非常基本的授权,例如在ryan bates早期的铁路广播:http://railscasts.com/episodes/20-restricting-access
我限制每个控制器和视图中的访问权限。我觉得它有点脏,但它有效。
在管理检查功能中,我检查会话用户凭据是否在表中:
helper_method :admin?
def admin?
admin = Admin.find_all_by_username(request.env["SPEP_ATTR_uid"])
if admin.empty?
false
else
true
end
end
def authorize
unless admin?
flash[:error] = "unauthorized access"
redirect_to home_url
false
end
end