@SuppressWarnings({ "unchecked", "rawtypes" }) @Override public List<User> execute(CommandContext commandContext) { ProcessDefinitionEntity processDefinition = CommandContextUtil.getProcessDefinitionEntityManager(commandContext).findById(processDefinitionId); if (processDefinition == null) { throw new FlowableObjectNotFoundException("Cannot find process definition with id " + processDefinitionId, ProcessDefinition.class); } IdentityService identityService = CommandContextUtil.getProcessEngineConfiguration(commandContext).getIdentityService(); List<String> userIds = new ArrayList<>(); List<IdentityLink> identityLinks = (List) processDefinition.getIdentityLinks(); for (IdentityLink identityLink : identityLinks) { if (identityLink.getUserId() != null && identityLink.getUserId().length() > 0) { if (!userIds.contains(identityLink.getUserId())) { userIds.add(identityLink.getUserId()); } } } if (userIds.size() > 0) { return identityService.createUserQuery().userIds(userIds).list(); } else { return new ArrayList<>(); } }
protected void verifyGroupMemberExists(String groupId, String userId) { // Check existence Group group = identityService.createGroupQuery().groupId(groupId).singleResult(); User user = identityService.createUserQuery().userId(userId).singleResult(); for (User groupMember : identityService.createUserQuery().memberOfGroup(groupId).list()) { if (groupMember.getId().equals(userId)) { user = groupMember; } } if (group == null || user == null) { throw new NotFoundException(); } }
protected void clearAllUsersAndGroups() { // Privileges List<Privilege> privileges = idmIdentityService.createPrivilegeQuery().list(); for (Privilege privilege : privileges) { idmIdentityService.deletePrivilege(privilege.getId()); } // Groups List<Group> groups = idmIdentityService.createGroupQuery().list(); for (Group group : groups) { List<User> members = idmIdentityService.createUserQuery().memberOfGroup(group.getId()).list(); for (User member : members) { idmIdentityService.deleteMembership(member.getId(), group.getId()); } idmIdentityService.deleteGroup(group.getId()); } // Users List<User> users = idmIdentityService.createUserQuery().list(); for (User user : users) { idmIdentityService.deleteUser(user.getId()); } }