Как добавить ограничение на основе группы или роли к какому-либо действию в рабочем процессе YouTrack?

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

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


person Haseeb Khan    schedule 16.04.2019    source источник


Ответы (1)


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

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

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

person Oleg Larshin    schedule 17.04.2019
comment
Их интеллект никогда не показывает currentUser. Я просмотрел их существующие рабочие процессы и обнаружил, что они используют currentUser, поэтому я обновил свой код, и он сработал. Позже я пришел сюда, чтобы удалить этот пост, однако вы опубликовали тот же ответ. Спасибо за вашу помощь! - person Haseeb Khan; 17.04.2019