Activiti получить пользователей по идентификатору группы - PullRequest
0 голосов
/ 21 мая 2019

Мне нужно отправить уведомление по электронной почте всем членам группы о новом назначении задачи. Я создал TaskListener, в котором я пытаюсь получить всех пользователей по идентификатору группы. Но каждый раз возвращается пустой список пользователей.

IdentityService is = Context.getProcessEngineConfiguration().getIdentityService();
List<User> users = is.createUserQuery().memberOfGroup("2007").list();
LOGGER.info("The users are: "  +users); // Always prints []

Кроме того, у меня есть следующие зависимости в моем pom.xml

        <dependency>
        <groupId>com.activiti</groupId>
        <artifactId>activiti-app-logic</artifactId>
        <version>1.6.2</version>
    </dependency>
    <dependency>
        <groupId>com.activiti</groupId>
        <artifactId>activiti-app-data</artifactId>
        <version>1.6.2</version>
    </dependency>
    <dependency>
        <groupId>com.activiti</groupId>
        <artifactId>activiti-dmn-engine</artifactId>
        <version>1.6.2</version>
    </dependency>
    <dependency>
        <groupId>com.activiti</groupId>
        <artifactId>activiti-app-model</artifactId>
        <version>1.6.2</version>
    </dependency>

    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-email</artifactId>
        <version>1.1</version>
    </dependency>

должен ли я иметь org.activiti в моем pom.xml вместо com.activiti ?

Дайте мне знать, если есть какой-либо другой / лучший способ отправить уведомление группе.

Спасибо за ваше время

Ответы [ 2 ]

1 голос
/ 30 мая 2019

Я использую этот способ получения списка пользователей:

Set<String> users_list = authorityService.getContainedAuthorities(AuthorityType.USER, "yourGroupName", false);

Возвращает сбор всех содержащихся полномочий - ПОЛЬЗОВАТЕЛЬ с в вашей группе.

См. Описание метода: https://dev.alfresco.com/resource/docs/java/org/alfresco/service/cmr/security/AuthorityService.html#getContainedAuthorities-org.alfresco.service.cmr.security.AuthorityType-java.lang.String-boolean-

Когда у вас есть такой список пользователей, вы можете получить NodeRef каждого пользователя и получить его адрес электронной почты из свойств NodeRef, например:

NodeRef user = personService.getPerson("userName");
String email = nodeService.getProperty(user, "email");

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

0 голосов
/ 22 мая 2019

Для пользовательских уведомлений о событиях (то есть назначения задач) прослушиватель задач может вам помочь.

PS: вы не можете использовать com.activiti.classes, если вы не приобрели действующую лицензию.

...