首页 > 解决方案 > Grails - 如何创建第二个公共域控制器

问题描述

我对 grails 框架仍然很陌生,并且正在研究基于 grails 2 的遗留应用程序。

我有一个域控制器,允许经过身份验证的用户执行所有基本的 CRUD 操作(创建、读取、更新和删除),“读取”包括列表和显示。我现在需要创建另一个控制器/视图,允许任何用户(也未经过身份验证的用户)能够只读(列表和显示)。

我环顾四周,但找不到任何“tuto”来这样做……那么这是我的问题:完成这项任务的最佳方法是什么?

我查看了 2 个选项: 选项 1 修改当前域控制器(类级别)@secured 注释以便仅注释创建、更新和删除方法。我尝试这样做,但似乎我仍然需要进行身份验证,我怀疑这与我可能需要修改的 SpringSecurity "grails.plugin.springsecurity.controllerAnnotations.staticRules" 配置有关。

选项 2 从头开始​​创建一个新控制器(但我想我不能要求 Grails 为同一个类生成第二个域控制器),那么构建我需要的所有数据意味着相当多的工作。

我什至不确定是否推荐了上述 2 个选项中的任何一个……有没有人遇到过这个问题(我相信很多人都有),如果是这样……推荐的方法是什么?

谢谢。

标签: grailsgrails-2.0grails-controller

解决方案


我有一个项目,它使用 USER_ROLE 让不同的人可以访问项目的不同部分。但是人们仍然需要登录。

我还有另一个 C# 项目。同一项目有 2 个副本。公共项目是主项目的副本。但是,公共项目正在访问从数据库设置的视图。它没有访问实际的表。因此,公共项目只能对数据库记录的子集进行只读访问。它只是阅读视图。

我是 Grails 的新手。我不知道您是否可以设置域以访问视图。

我在框外思考。对于您的项目,您是否可以创建一个新的“公共只读”项目。将主项目中的部分复制并粘贴到您希望让人们访问的新“公共只读”项目中。

在这种情况下,您的新项目是主项目的一个子集,但它正在访问来自实际数据库表的记录。

你怎么看?


推荐阅读