如何为 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'))...

希望对您有所帮助。