如何为 YouTrack 工作流程中的某些操作添加基于组或角色的限制?
How to add group or role based restriction to some action in YouTrack workflow?
我已经创建了一个工作流来限制添加后估算的变化。但是,我想将此权限授予管理员,但限制所有其他组,例如开发人员。
我尝试过 isInGroup 函数,但它无法正常工作,而且我总是遇到异常。
var entities = require('@jetbrains/youtrack-scripting-api/entities');
var workflow = require('@jetbrains/youtrack-scripting-api/workflow');
exports.rule = entities.Issue.onChange({
title: 'Protect_estimations',
guard: function(ctx) {
if(!ctx.current.isInGroup('Admin')) {
return (ctx.issue.fields.oldValue(ctx.Estimation) !== null && ctx.issue.fields.isChanged(ctx.Estimation) === true); }
return false; },
action: function(ctx) {
workflow.check(false,'Sorry, you cannot update estimates'); },
requirements: {
Estimation: {
type: entities.Field.periodType,
name: 'Estimation'
} } });
条件 !ctx.current.isInGroup('Admin') 不起作用,而其余代码 运行 完美。我是否需要在 'requirements' 部分添加任何规则才能完成此操作?请提出建议。
要解决此问题,我建议您改用 currentUser 属性:
if(!ctx.currentUser.isInGroup('Admin'))...
希望对您有所帮助。
我已经创建了一个工作流来限制添加后估算的变化。但是,我想将此权限授予管理员,但限制所有其他组,例如开发人员。
我尝试过 isInGroup 函数,但它无法正常工作,而且我总是遇到异常。
var entities = require('@jetbrains/youtrack-scripting-api/entities');
var workflow = require('@jetbrains/youtrack-scripting-api/workflow');
exports.rule = entities.Issue.onChange({
title: 'Protect_estimations',
guard: function(ctx) {
if(!ctx.current.isInGroup('Admin')) {
return (ctx.issue.fields.oldValue(ctx.Estimation) !== null && ctx.issue.fields.isChanged(ctx.Estimation) === true); }
return false; },
action: function(ctx) {
workflow.check(false,'Sorry, you cannot update estimates'); },
requirements: {
Estimation: {
type: entities.Field.periodType,
name: 'Estimation'
} } });
条件 !ctx.current.isInGroup('Admin') 不起作用,而其余代码 运行 完美。我是否需要在 'requirements' 部分添加任何规则才能完成此操作?请提出建议。
要解决此问题,我建议您改用 currentUser 属性:
if(!ctx.currentUser.isInGroup('Admin'))...
希望对您有所帮助。