在 scriptrunner 中获取当前用户进行数据库查找不起作用

问题描述 投票:0回答:1

验证

select jiraaccount,displayname from mcigeneralname where jiraaccount = ?

搜索sql

select jiraaccount,displayname from mcigeneralname
where lower(jiraaccount) like lower(?) || '%' 

配置脚本:

import com.atlassian.jira.issue.Issue
import com.atlassian.jira.issue.customfields.option.Option
import com.onresolve.scriptrunner.canned.jira.fields.editable.database.SqlWithParameters
import com.atlassian.jira.component.ComponentAccessor;


def userinfousername = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser().getUsername()
String userinfo = userinfousername


getSearchSql = { String inputValue, Issue issue, String originalValue ->

new SqlWithParameters(
"select jiraaccount,displayname from mcigeneralname where jiraaccount like ? || '%' and jiraaccount = ?",
[inputValue,userinfo]
)
}

getValidationSql = { String id, Issue issue,String originalValue ->

new SqlWithParameters("""
select jiraaccount,displayname from mcigeneralname
where displayname = ? and jiraaccount = ?
"""
, [id, userinfo])
}

当 userinfo 变量设置为字符串时,它可以工作,但是当当前用户传递给脚本时,它不起作用

例如 userinfo = 'm.moeini'

如何传递当前用户的配置脚本?

jira scriptrunner-for-jira
1个回答
0
投票

我的第一个建议是不要直接访问数据库,因为可能会导致不同的错误,而且在具有不同节点的 DC 实例中,获得的信息并不总是 100% 真实。 为了能够提供帮助,您想实现什么目标?

谢谢,伊万。

© www.soinside.com 2019 - 2024. All rights reserved.