gpt4 book ai didi

grails - 读出 Grails-Controller 中的所有 Action

转载 作者:行者123 更新时间:2023-12-04 13:06:29 25 4
gpt4 key购买 nike

我需要从我的网络应用程序中的任何 Controller 读出所有可用的操作。这样做的原因是一个授权系统,我需要为用户提供一个允许操作的列表。

例如。:
用户 xyz 具有执行显示、列表、搜索操作的权限。
用户 admin 具有执行编辑、删除等操作的权限。

我需要从 Controller 读出所有 Action 。有没有人有想法?

最佳答案

这将创建一个带有 Controller 信息的 map 列表(“数据”变量)。 List中的每个元素都是一个Map,键为'controller',对应 Controller 的URL名(例如BookController -> 'book'),controllerName对应类名('BookController'),'actions'对应于该 Controller 的 Action 名称列表:

import org.springframework.beans.BeanWrapper
import org.springframework.beans.PropertyAccessorFactory

def data = []
for (controller in grailsApplication.controllerClasses) {
def controllerInfo = [:]
controllerInfo.controller = controller.logicalPropertyName
controllerInfo.controllerName = controller.fullName
List actions = []
BeanWrapper beanWrapper = PropertyAccessorFactory.forBeanPropertyAccess(controller.newInstance())
for (pd in beanWrapper.propertyDescriptors) {
String closureClassName = controller.getPropertyOrStaticPropertyOrFieldValue(pd.name, Closure)?.class?.name
if (closureClassName) actions << pd.name
}
controllerInfo.actions = actions.sort()
data << controllerInfo
}

关于grails - 读出 Grails-Controller 中的所有 Action ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2956294/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com