use of org.alfresco.bm.dataload.rm.role.RMRole in project records-management by Alfresco.
the class PrepareRMSiteMembers method setRole.
public void setRole(String role) {
rolesToChoseFrom = new ArrayList<RMRole>();
if (isBlank(role)) {
throw new IllegalArgumentException("'role' may not be null or empty.");
}
// Split by comma
String[] roles = split(role, ",");
if (roles.length < 1) {
throw new IllegalArgumentException("'role' has to contain at least one RM Role, ',,,' values are not allowed.");
}
for (String roleValue : roles) {
String roleStr = roleValue.trim();
try {
RMRole chosenRole = RMRole.valueOf(roleStr);
if (!rolesToChoseFrom.contains(chosenRole)) {
rolesToChoseFrom.add(chosenRole);
}
} catch (Exception ex) {
throw new IllegalArgumentException(roleStr + " does not have one of the allowed values.");
}
}
}
use of org.alfresco.bm.dataload.rm.role.RMRole in project records-management by Alfresco.
the class PrepareRMSiteMembers method processEvent.
@Override
protected EventResult processEvent(Event event) throws Exception {
if (!isAssignRMRoleToUsers()) {
return new EventResult(ASSIGNATION_NOT_WANTED_MSG, new Event(getEventNameContinueLoadingData(), null));
}
if (getUserCount() <= 0) {
return new EventResult(NO_USERS_WANTED_MSG, new Event(getEventNameContinueLoadingData(), null));
}
int membersCount = 0;
int userSkip = 0;
final int userPageSize = 100;
List<UserData> users = userDataService.getUsersByCreationState(DataCreationState.Created, userSkip, userPageSize);
if (users.isEmpty()) {
return new EventResult(NO_USERS_AVAILABLE_MSG, new Event(getEventNameContinueLoadingData(), null));
}
String siteId = PATH_SNIPPET_RM_SITE_ID;
// How many users do we have for RM site?
int currentSiteUsersCount = siteDataService.getSiteMembers(siteId, DataCreationState.Created, null, 0, getUserCount()).size();
int siteUsersToCreate = getUserCount() - currentSiteUsersCount;
// Keep going while we attempt to find a user to use
while (!users.isEmpty() && membersCount < siteUsersToCreate) {
for (UserData user : users) {
if (membersCount == siteUsersToCreate) {
break;
}
// Check if the user is already a member
String username = user.getUsername();
SiteMemberData siteMember = siteDataService.getSiteMember(siteId, username);
if (siteMember != null) {
// The user is already a set to be a site member (we could hit site manager)
continue;
}
// Create the membership
siteMember = new SiteMemberData();
siteMember.setCreationState(DataCreationState.NotScheduled);
RMRole randomRole = getRandomRole();
siteMember.setRole(randomRole.toString());
siteMember.setSiteId(siteId);
siteMember.setUsername(username);
siteDataService.addSiteMember(siteMember);
membersCount++;
}
userSkip += users.size();
users = userDataService.getUsersByCreationState(DataCreationState.Created, userSkip, userPageSize);
}
if (membersCount == 0) {
return new EventResult(NO_NEW_USERS_FOUND_MSG, new Event(getEventNameContinueLoadingData(), null));
}
String msg = MessageFormat.format(PREPARED_MSG_TEMPLATE, membersCount);
if (membersCount < siteUsersToCreate) {
msg = MessageFormat.format(PREPARED_INCOMPLETE_MSG_TEMPLATE, membersCount, siteUsersToCreate);
}
// We need an event to mark completion
Event outputEvent = new Event(eventNameSiteMembersPrepared, null);
// Create result
EventResult result = new EventResult(msg, Collections.singletonList(outputEvent));
// Done
logger.debug(msg);
return result;
}
Aggregations