Компонент Роли жизненного цикла и воркфлоу расширяет стандартную модель ролей жизненного цикла платформы. Он позволяет создавать дополнительные (кастомные) роли для использования в различных функциях системы.
Компонент доступен в разделе Настройка — https://app.timetta.com/settings/lifecycle-roles.
Созданные роли можно использовать в следующих сценариях:
Роль по дополнительному полю.
Добавьте в сущность (например, задачу) дополнительное поле типа Пользователь с именем Заказчик. На основе этого поля создаётся роль. Она автоматически определяет пользователя, указанного в поле, как участника роли.
Роль по связанным данным.
Для проекта можно создать роль Аналитики команды. В неё войдут все пользователи с ролью Аналитик в команде проекта. Это позволяет динамически формировать список участников на основе связанных сущностей.
Для реализации пользовательской роли используется интерфейс ILifecycleRoleResolver<T>, где T — тип сущности, для которой определяется роль.
Ниже приведён пример обработчика роли для сущности Проект.
/// <summary>
/// Определяет участников роли для указанного проекта.
/// </summary>
/// <param name="context">Контекст жизненного цикла.</param>
/// <param name="entity">Сущность проекта.</param>
/// <returns>Список идентификаторов пользователей, входящих в роль.</returns>
public class ProjectLifecycleRoleResolver : ILifecycleRoleResolver<Project>
{
public async Task<List<Guid>> ResolveRole(LifecycleRoleContext context, Project entity)
{
return [entity.UserValue1Id ?? Guid.Empty];
}
}
Обработчик возвращает пользователя, указанного в дополнительном поле проекта UserValue1Id.
Аналогичным образом можно реализовать более сложную логику:
Перейти на русскую версию?