fixed group multi-match snafu on startup
This commit is contained in:
@@ -3,6 +3,8 @@ package com.inteligr8.activiti;
|
|||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import javax.persistence.NonUniqueResultException;
|
||||||
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@@ -65,21 +67,28 @@ public class ActivitiAppAdminMembersFixer implements DataFixer {
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
Long tenantId = this.tenantFinderService.findTenantId();
|
Long tenantId = this.tenantFinderService.findTenantId();
|
||||||
List<Group> groups;
|
List<Group> groups = null;
|
||||||
Group group1 = this.groupService.getGroupByExternalIdAndTenantId(this.adminGroupExternalId, tenantId);
|
try {
|
||||||
if (group1 != null) {
|
Group group1 = this.groupService.getGroupByExternalIdAndTenantId(this.adminGroupExternalId, tenantId);
|
||||||
groups = Arrays.asList(group1);
|
if (group1 != null)
|
||||||
} else {
|
groups = Arrays.asList(group1);
|
||||||
|
} catch (NonUniqueResultException nure) {
|
||||||
|
// suppress
|
||||||
|
}
|
||||||
|
if (groups == null)
|
||||||
groups = this.groupService.getGroupByNameAndTenantId(this.adminGroupName, tenantId);
|
groups = this.groupService.getGroupByNameAndTenantId(this.adminGroupName, tenantId);
|
||||||
}
|
|
||||||
this.logger.debug("Found {} admin group(s)", groups.size());
|
this.logger.debug("Found {} admin group(s)", groups.size());
|
||||||
|
|
||||||
for (String email : adminUsers) {
|
for (String email : adminUsers) {
|
||||||
User user = this.userService.findUserByEmail(email);
|
User user = this.userService.findUserByEmailAndTenantId(email, tenantId);
|
||||||
|
if (user == null) {
|
||||||
this.logger.debug("Adding {} to admin group(s)", user.getEmail());
|
this.logger.info("The user with email '{}' does not exist, so they cannot be added as an administrator", email);
|
||||||
for (Group group : groups)
|
} else {
|
||||||
this.groupService.addUserToGroup(group, user);
|
this.logger.debug("Adding {} to admin group(s)", user.getEmail());
|
||||||
|
for (Group group : groups)
|
||||||
|
this.groupService.addUserToGroup(group, user);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user