Search in sources :

Example 1 with RMRole

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.");
        }
    }
}
Also used : RMRole(org.alfresco.bm.dataload.rm.role.RMRole)

Example 2 with RMRole

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;
}
Also used : RMRole(org.alfresco.bm.dataload.rm.role.RMRole) SiteMemberData(org.alfresco.bm.site.SiteMemberData) EventResult(org.alfresco.bm.event.EventResult) UserData(org.alfresco.bm.user.UserData) Event(org.alfresco.bm.event.Event)

Aggregations

RMRole (org.alfresco.bm.dataload.rm.role.RMRole)2 Event (org.alfresco.bm.event.Event)1 EventResult (org.alfresco.bm.event.EventResult)1 SiteMemberData (org.alfresco.bm.site.SiteMemberData)1 UserData (org.alfresco.bm.user.UserData)1