Как добавить групповое или ролевое ограничение к какому-либо действию в рабочем процессе YouTrack? - PullRequest
1 голос
/ 16 апреля 2019

Я создал рабочий процесс, чтобы ограничить изменения в оценке после ее добавления. Однако я хочу дать это разрешение администраторам, но ограничить все другие группы, такие как разработчики.

Я пробовал функцию 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') не работает, тогда как остальная часть кода работает идеально. Нужно ли добавлять какое-либо правило в раздел «требования», чтобы это сделать? Пожалуйста, предложите.

1 Ответ

1 голос
/ 17 апреля 2019

Чтобы решить эту проблему, я предлагаю вместо этого использовать свойство currentUser :

if(!ctx.currentUser.isInGroup('Admin'))...

Надеюсь, это поможет.

...