2010-08-21 72 views
0

我有模型A,B,C,D等。对于这些模型中的每一个,我都有我通常的控制器/视图/助手。这些由基于表单的应用程序中的一组内容作者访问,以将数据填充到数据库中。内容作者还将拥有作者,出版商,超级管理员等类别。基本上,我们已经构建了一个迷你内容管理系统。需要设计具有两个分区的Rails 2应用程序的帮助

一组其他用户(与上述设置无关)需要访问其中某些模型中的数据。但对于那些观点是完全是的不同。我也不希望这些用户拥有允许查看模型的编辑屏幕。实质上,这些人是将应用程序用作只读/分析数据存储的最终用户。

我该如何做到这一点?我应该为用户网站创建单独的控制器并调用这些模型吗?如何确保网站用户无法访问cms屏幕?任何指针,设计原则,路由方法,这样的应用程序的宝石?

回答

0

你需要验证层。

最简单的方法,我想说的最常见的一种是让不同的控制器对每个部分,每个部分认证添加before_filter方法和授权用户继续(通常在用户模型is_admin?方法) ,或者如果用户不被允许,则返回一个错误消息。

你可以用namespaces(类似于/管理/作者,/管理/书籍/ 1 /编辑等)分开你的控制器,并让他们的RESTful这种方式。

如果你需要一个更复杂的模式,你可以使用任何的授权工具,在那里http://ruby-toolbox.com/categories/rails_authorization.html

+0

...我们也可以为这两个分区添加一个通用的身份验证层? – papdel 2010-08-30 22:28:30

1

我该如何做到这一点?我应该为用户网站创建单独的控制器并调用这些模型吗?

我会为后端和前端创建一组不同的控制器。我会将后端控制器移动到名称空间。有关命名空间的更多信息:http://guides.rubyonrails.org/routing.html#controller-namespaces-and-routing

如何确保网站用户无法访问cms屏幕?任何指针,设计原则,路由方法,这样的应用程序的宝石?

为此,您需要某种认证和授权。一些例子:

有在这个问题上的一些好的截屏:

+0

功能和相应的宝石整齐分类。我打算使用Devise。你也可能想在你的答案中翻转认证和授权。我可能能够得到解决方案来处理设计和路由命名空间。一旦我完成了就会报告回来。 – papdel 2010-08-30 22:27:22

相关问题