Size: a a a

Camunda BPM Group

2019 February 01

DK

Denis Kotov in Camunda BPM Group
Хелоу. Так он вроде прям в логах указывает там в окошке, какая строчка ему не нравится
источник
2019 February 02

AT

Andrey Timonich in Camunda BPM Group
@Tony_Maklakov привет, Тони)
источник

AM

Anton Maklakov in Camunda BPM Group
Andrey Timonich
@Tony_Maklakov привет, Тони)
Андрей, приветствую!
источник
2019 February 04

EZ

Eldar Zakiryanov in Camunda BPM Group
Ребята подскажите пожалуйста. На стороне backend хотел прикрутить API метод который возращает все processDefinitions которые пользователь может запустить.

authorizationService.createAuthorizationQuery().resourceType(Resources.PROCESS_DEFINITION).hasPermission(Permissions.CREATE_INSTANCE).userIdIn(userId).list()

list пустой. Хотя в админке есть на человека authorization.
источник

EZ

Eldar Zakiryanov in Camunda BPM Group
Eldar Zakiryanov
Ребята подскажите пожалуйста. На стороне backend хотел прикрутить API метод который возращает все processDefinitions которые пользователь может запустить.

authorizationService.createAuthorizationQuery().resourceType(Resources.PROCESS_DEFINITION).hasPermission(Permissions.CREATE_INSTANCE).userIdIn(userId).list()

list пустой. Хотя в админке есть на человека authorization.
Подскажите плиз? Он же должен вытащить все Authorizations с resourceId processDefinitionKey?
источник

DK

Denis Kotov in Camunda BPM Group
HasPermition разве не bool возвращает?
источник

EZ

Eldar Zakiryanov in Camunda BPM Group
Denis Kotov
HasPermition разве не bool возвращает?
Нет .list()
источник

EZ

Eldar Zakiryanov in Camunda BPM Group
Пока возможности на 7.10 нету переехать. Там есть метод который возвращает список processDefinitions которые пользователь имеет право запустить.
источник

EZ

Eldar Zakiryanov in Camunda BPM Group
Тут все кто сидит на 7.9 вы как список processDefinitions проверяете на запуск со стороны клиента?
источник

EZ

Eldar Zakiryanov in Camunda BPM Group
Сейчас у нас сначала на клиенте получаем список всеx processDefinitions а потом на каждый идет проверка права Permission("ProcessDefinition", "CreateInstance")
источник

EZ

Eldar Zakiryanov in Camunda BPM Group
Сколько ProcessDefinitions столько же вызовов идет со стороны клиента на проверку прав 🙈
источник

DK

Denis Kotov in Camunda BPM Group
как-то это не очень. Я бы авторизиацию на апи включил
источник

DK

Denis Kotov in Camunda BPM Group
и там бы уже написал всю логику прав, которая мне нужна
источник

EZ

Eldar Zakiryanov in Camunda BPM Group
Denis Kotov
как-то это не очень. Я бы авторизиацию на апи включил
Она есть
источник

EZ

Eldar Zakiryanov in Camunda BPM Group
В родном Camunda Tasklist видно что они отображают весь список ProcessDefinitions но когда пытаешься запустить выдает ошибку что нету прав. Они метод который проверят сразу на право запуска процесса добавили только в 7.10 🙈
источник

EZ

Eldar Zakiryanov in Camunda BPM Group
Пришлось так сделать

// Получаем все processDefinitions
List<ProcessDefinition> processDefinitions = repositoryService
               .createProcessDefinitionQuery()
               .orderByProcessDefinitionName()
               .asc()
               .withoutTenantId()
               .latestVersion()
               .listPage(firstResult, maxResults);

// Получаем userId и его группы
String userId = identityService.getCurrentAuthentication().getUserId();
       List<String> groupIds = identityService.getCurrentAuthentication().getGroupIds();

// И проверяем каждый processDefinition на CREATE INSTANCE
authorizationService.isUserAuthorized(userId, groupIds, Permissions.CREATE_INSTANCE, Resources.PROCESS_DEFINITION, processDefinition.getKey());
источник

EZ

Eldar Zakiryanov in Camunda BPM Group
Eldar Zakiryanov
Пришлось так сделать

// Получаем все processDefinitions
List<ProcessDefinition> processDefinitions = repositoryService
               .createProcessDefinitionQuery()
               .orderByProcessDefinitionName()
               .asc()
               .withoutTenantId()
               .latestVersion()
               .listPage(firstResult, maxResults);

// Получаем userId и его группы
String userId = identityService.getCurrentAuthentication().getUserId();
       List<String> groupIds = identityService.getCurrentAuthentication().getGroupIds();

// И проверяем каждый processDefinition на CREATE INSTANCE
authorizationService.isUserAuthorized(userId, groupIds, Permissions.CREATE_INSTANCE, Resources.PROCESS_DEFINITION, processDefinition.getKey());
Конечно в БД будет много запросов. Но лучше это сделать на стороне backend и сразу выдать список на frontend чем на каждый ProcessDefinition делать проверку на запуск со стороны frontend
источник
2019 February 05

EZ

Eldar Zakiryanov in Camunda BPM Group
Всем привет! Ребята вопрос: Как можно найти все процессы где пользователь был участником процесса?
источник

DK

Denis Kotov in Camunda BPM Group
Привет. Селектом в бд, через табличку в  базе taskHistory ,там есть и assigne, и processInstanceId
источник

EZ

Eldar Zakiryanov in Camunda BPM Group
Denis Kotov
Привет. Селектом в бд, через табличку в  базе taskHistory ,там есть и assigne, и processInstanceId
Спасибо за ответ! Вопрос с pagination. Это нормально если taskHistory выдаст тысячими строк и потом это все нужно будет делать where processInstanceId IN ( subSelect ) LIMIT x OFFSET y?
источник