Welcome 微信登录

首页 / 软件开发 / JAVA / 建立一个典型的Ruby On Rails网站(三)

建立一个典型的Ruby On Rails网站(三)2011-12-08 javaeye 夜鸣猪第三部分,权限设计和acl插件的使用。感觉这样的权限设计也是很主流的。

下面,再看看EOL.ORG在权限设计方面是如何实现的,或者使用了什么插件。

用户角色设计和权限管理

EOL.org的权限部分采用acl_system plugin的插件,地址如下

http://brainspl.at/articles/2006/02/20/new-plugin-acl_system

机制如下:

用户可以分配零个或多个角色

一个或多个Controller可以隶属于一个角色

那么,保证权限正确限制,可以从以下几个方面实现:

1. 保证用户必须登录才能访问特定的action或contoller。那么只需要添加如下语句在controller的开始:

Ruby代码

 before_filter :check_authentication
这段检查并不是角色有关的检查,只是简单的提供登录限制。

2. 实现特定的用户访问特定的controller。那么需要在指定的controller,添加

Ruby代码

 access_control :DEFAULT => "ROLE NAME GOES HERE"
这一个检查,将针对用户的角色(即分配给user的role)来限制controller的读取。如果,想了解很进一步的有关机制,可以查阅我们使用的plugin(acl_system2)的README说明文档。那里的例子还不错。

3. 项目还提供很方便的controller/helper 方法用来检查user是否隶属于某一特定角色或者角色群。("is_user_in_role?"

Ruby代码

 do_this_method_only_for_admins if is_user_in_role?("Administrator")