Уровни доступа

очень не хватает возможности выдать Роли доступ к чтению задач только «своих» созданных юзером или назначенных на него.

Нам необходимо завести стороннего пользователя в систему, что бы он мог выполнять задачи поставленные на него, но не видел остального происходящего.

Судя по документации и многочисленным попыткам, ютрек вначале проверяет права роли на чтение задач, затем Настройки видимости конкретной задачи. Получается единственный вариант реализовать такое это манипулировать настройками видимости через workflow. При этом штатная команда проекта должна вручную иметь дополнительную группу по которой она будет видеть все задачи?

12 comments
Comment actions Permalink
Official comment

Добрый день! 

Да, на данный момент такой сценарий можно реализовать с помощью кастомного воркфлоу. Для этого необходимо на создании задачи добавить группу пользователей, котороая будет иметь возможность просматривать все задачи в свойство issue.permittedGroup. При этом пользователь, создавший задачу, будет добавлен в видимость автоматически. 

Надеюсь, это будет полезно. Если появятся дополнительные вопросы - обращайтесь. Всегда будем рады Вам помочь!

Comment actions Permalink

Здравствуйте,

Oleg Larshin спасибо за ваш ответ,
у меня такая же проблема как и у коллеги что задавал вопрос выше

"необходимо завести стороннего пользователя в систему,
- что бы он мог выполнять задачи поставленные на него,
- чтобы мог сам создавать задачи,
- не видел остального происходящего, мог работать только с назначенными на него или со своими созданными задачами"

Я пытался решить вопрос через воркфлоу, но не смог.

Так как вопрос популярный и видимо беспокоит многих,
можно ли обратиться к комьюнити или к поддержке пользователей YouTrack
у кого получилось решить задачу, можете ли вы куда-то выложить такой работающий скрипт, чтобы можно было "Импортировать рабочий процесс" ?

0
Comment actions Permalink

А разве не было ранее такой функции в Ютрек? Ее упразднили?

Что касается выкладки работающего скрипта с подробной инструкцией присоединяюсь, не хочется долго разбираться в такой очевидной функции - отображать пользователю задачи только назначенные на него

 

1
Comment actions Permalink

В YouTrack всегда можно было автоматически разграничить видимость по проектам для различных групп. Но в описанном сценарии, когда видимость должна отличаться в зависимости от условий, необходимо использовать воркфлоу. Вот пример кода, который автоматически добавляет группу в Visible to при создании задачи:

var entities = require('@jetbrains/youtrack-scripting-api/entities');
var workflow = require('@jetbrains/youtrack-scripting-api/workflow');
var viewersGroupName = 'SET YOUR GOUP NAME HERE';

exports.rule = entities.Issue.onChange({
title: 'Add Permitted Group on Submit',
action: function(ctx) {
var issue = ctx.issue;
if (issue.becomesReported || (issue.isChanged('project') && issue.isReported)) {
issue.permittedGroups.add(ctx.viewers);
workflow.message('Users from group "' + ctx.viewers.name + '" can see this request.');
}
},
requirements: {
viewers: {
type: entities.UserGroup,
name: viewersGroupName
},
}
});

В этом случае, задача будет видна всем членам этой группы и человеку, создашему эту задачу. Чтобы Исполнитель автоматически добавлялся в Visible to, использйте стандарнтый воркфлоу Assignee Visibility.

1
Comment actions Permalink

Подскажите на текущий момент (прошло 2 года) решена ли задача в продукте без использования воркфлоу?

0
Comment actions Permalink

Добрый день,

Да, на текущий момент у каждого проекта есть настройка, в которой можно определить группу пользователей, на которую будут закрыты все новые задачи этого проекта. Подробности можно найти вот здесь: https://www.jetbrains.com/help/youtrack/incloud/Configuring-a-Project.html#general-project-settings, настройка "Default visibility setting".

-1
Comment actions Permalink

Anastasia Bartasheva, если я правильно понял вопрос предыдущих спрашивающих (ибо у меня возник такой же вопрос при попытке разграничения прав доступа), то его суть не в том, чтобы ограничить доступ на уровне проекта, а в том, чтобы ВНУТРИ проекта, с которым работает несколько человек, иметь возможность ограничить доступ к отдельным задачам ВНУТРИ проекта так, чтобы отдельному пользователю были видны только те задачи, которые назначены на него. Приведу пример для наглядности:

Создаём проект с названием "СуперПроект"

Добавляем в него пользователей "Ярослав", "Алиса", "Борис" и "Вадим" (последние три пользователя состоят в одной группе "Исполнители")

Назначаем Ярослава владельцем проекта

Заводим Задачу №1 и назначаем ответственной по нему Алису

Заводим Задачу №2 и назначаем ответственным по нему Бориса

Заводим Задачу №3 и назначаем ответственным по нему Вадима

Так вот Задача №2, которую в проекте СуперПроект мы назначили на Бориса, не должна отображаться в списке задач у Алисы и у Вадима.

При этом Ярослав должен видеть все три задачи!

Собственно вопрос: как настроить систему, чтобы такой сценарий был возможен внутри одного проекта? 

1
Comment actions Permalink

Здравствуйте!

Для ограничения видимости задач внутри проекта можно использовать опцию Visible to (Отображать для).

То есть Ярослав создаёт три задачи (насколько я поняла по Вашему сценарию). Затем для второй задачи Ярослав выбирает Бориса в списке Visible to, и задача остаётся видна только Ярославу (как создателю задачи) и Борису. Алиса и Вадим не будут видеть эту задачу, даже если откроют прямую ссылку на неё.

0
Comment actions Permalink

Алиса, добрый день.

Да, всё верно, только как это сделать для проекта по умолчанию так, чтобы поле Visible to заполнялось автоматически при создании Задачи №2 и выборе Бориса в качестве Исполнителя этой задачи? Чтобы не было необходимости выбирать Бориса в двух местах, а ограничиться одним разом при указании его Исполнителем?

0
Comment actions Permalink

Добрый день,

Такое можно осуществить с помощью рабочих процессов (воркфлоу). On-change правило будет срабатывать при при создании задачи и/или изменении исполнителя и автоматически изменять список visible to в соответствии с исполнителем. 

Вот здесь есть похожий пример (в самом низу, секция "Automatically add users to the “visible to” list when they are selected in a custom field that stores a user type"): https://blog.jetbrains.com/youtrack/2017/11/make-it-workflow-part-1-restricting-issue-visibility/.

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

 

0
Comment actions Permalink

возможно это бы помогло, если бы было понятно, что надо сделать, но из этого сообщения я не понял ничего.. 

а чёткая понятная инструкция "делай ра делай два, делай три" конкретно по приведённому мной вопросу человеку, который не умеет программировать, видимо, не существует? 

0
Comment actions Permalink

Добрый день, боюсь, такой сценарий потребует написания рабочего процесса (кода на JavaScript). Эти процессы расширят функциональность YouTrack - например, могут среагировать на изменение какого-то поля, на создание задачи или добавление комментария и затем автоматически применить какую-то логику, которую вы прописываете в теле процесса. Типичные примеры - автоматически добавить шаблон описания задачи при создании черновика, предупреждать, когда исполнитель не видит задачу из-за ограничений списка видимости (кстати, тоже близкий к вашему сценарию пример) или выставлять значения одних полей в зависимости от значений других. Еще рабочие процессы умеют реагировать по расписанию.

В целом, логика вашего процесса будет такой:

1. Секция guard срабатывает, когда в задаче сменилось поле Исполнитель (и это поле заполнено)
2. Секция action добавляет исполнителя в список видимости задачи

Буду рада ответить на ваши вопросы.

0

Please sign in to leave a comment.