All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.payneteasy.superfly.service.impl.RoleServiceImpl Maven / Gradle / Ivy

package com.payneteasy.superfly.service.impl;

import java.util.List;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Required;
import org.springframework.transaction.annotation.Transactional;

import com.payneteasy.superfly.dao.DaoConstants;
import com.payneteasy.superfly.dao.RoleDao;
import com.payneteasy.superfly.model.RoutineResult;
import com.payneteasy.superfly.model.ui.action.UIActionForCheckboxForRole;
import com.payneteasy.superfly.model.ui.group.UIGroupForCheckbox;
import com.payneteasy.superfly.model.ui.role.UIRole;
import com.payneteasy.superfly.model.ui.role.UIRoleForFilter;
import com.payneteasy.superfly.model.ui.role.UIRoleForList;
import com.payneteasy.superfly.model.ui.role.UIRoleForView;
import com.payneteasy.superfly.service.LoggerSink;
import com.payneteasy.superfly.service.NotificationService;
import com.payneteasy.superfly.service.RoleService;
import com.payneteasy.superfly.utils.StringUtils;

@Transactional
public class RoleServiceImpl implements RoleService {

    private static final Logger logger = LoggerFactory.getLogger(RoleServiceImpl.class);

    private RoleDao roleDao;
    private NotificationService notificationService;
    private LoggerSink loggerSink;

    @Required
    public void setRoleDao(RoleDao roleDao) {
        this.roleDao = roleDao;
    }

    @Required
    public void setNotificationService(NotificationService notificationService) {
        this.notificationService = notificationService;
    }

    @Required
    public void setLoggerSink(LoggerSink loggerSink) {
        this.loggerSink = loggerSink;
    }

    public List getRolesForFilter() {
        return roleDao.getRolesForFilter(null, null, 0, Integer.MAX_VALUE);
    }

    public long getRoleCount(String rolesName, List subsystems) {
        return roleDao.getRoleCount(rolesName, StringUtils
                .collectionToCommaDelimitedString(subsystems));
    }

    public List getRoles(long startFrom, long recordsCount,
            int orderFieldNumber, boolean asc, String rolesName,
            List subsystems) {
        return roleDao.getRoles(startFrom, recordsCount, orderFieldNumber,
                asc ? DaoConstants.ASC : DaoConstants.DESC, rolesName,
                StringUtils.collectionToCommaDelimitedString(subsystems));
    }

    public RoutineResult deleteRole(long roleId) {
        RoutineResult result = roleDao.deleteRole(roleId);
        if (result.isOk()) {
            notificationService.notifyAboutUsersChanged();
        }
        loggerSink.info(logger, "DELETE_ROLE", result.isOk(), String.valueOf(roleId));
        return result;
    }

    public UIRoleForView getRole(long roleId) {
        return roleDao.getRole(roleId);
    }

    public RoutineResult updateRole(UIRole role) {
        RoutineResult result = roleDao.updateRole(role);
        // notifying as principal could be changed, and actions for users
        // 'via principal' could be changed too
        if (result.isOk()) {
            notificationService.notifyAboutUsersChanged();
        }
        loggerSink.info(logger, "UPDATE_ROLE", result.isOk(), role.getRoleName() + " in " + role.getSubsystemId());
        return result;
    }

    public RoutineResult createRole(UIRole role) {
        RoutineResult result = roleDao.createRole(role);
        if (result.isOk()) {
            notificationService.notifyAboutUsersChanged();
        }
        loggerSink.info(logger, "CREATE_ROLE", result.isOk(), role.getRoleName() + " in " + role.getSubsystemId());
        return result;
    }

    public RoutineResult changeRoleGroups(long roleId,
            List groupToAddIds, List groupToRemoveIds) {
        RoutineResult result = roleDao.changeRoleGroups(roleId,
                StringUtils.collectionToCommaDelimitedString(groupToAddIds),
                StringUtils.collectionToCommaDelimitedString(groupToRemoveIds));
        if (result.isOk()) {
            notificationService.notifyAboutUsersChanged();
        }
        loggerSink.info(logger, "CHANGE_ROLE_GROUPS", result.isOk(), String.valueOf(roleId));
        return result;

    }

    public RoutineResult changeRoleActions(long roleId,
            List actionToAddIds, List actionToRemoveIds) {
        RoutineResult result = roleDao.changeRoleActions(roleId,
                StringUtils.collectionToCommaDelimitedString(actionToAddIds),
                StringUtils.collectionToCommaDelimitedString(actionToRemoveIds));
        if (result.isOk()) {
            notificationService.notifyAboutUsersChanged();
        }
        loggerSink.info(logger, "CHANGE_ROLE_ACTIONS", result.isOk(), String.valueOf(roleId));
        return result;
    }

    public List getAllRoleActions(long startFrom,
            long recordsCount, int orderFieldNumber, boolean ascending,
            long roleId, String actionName) {
        return roleDao.getAllRoleActions(startFrom, recordsCount,
                orderFieldNumber, ascending ? DaoConstants.ASC
                        : DaoConstants.DESC, roleId, actionName);
    }

    public long getAllRoleActionsCount(long roleId, String actionName) {
        return roleDao.getAllRoleActionsCount(roleId, actionName);
    }

    public List getMappedRoleActions(long startFrom,
            long recordsCount, int orderFieldNumber, boolean ascending,
            long roleId, String actionName) {
        return roleDao.getMappedRoleActions(startFrom, recordsCount,
                orderFieldNumber, ascending ? DaoConstants.ASC
                        : DaoConstants.DESC, roleId, actionName);
    }

    public long getMappedRoleActionsCount(long roleId, String actionName) {
        return roleDao.getMappedRoleActionsCount(roleId, actionName);
    }

    public long getAllRoleGroupsCount(long roleId) {
        return roleDao.getAllRoleGroupsCount(roleId);
    }

    public List getAllRoleGroups(long startFrom,
            long recordsCount, int orderFieldNumber, String orderType,
            long roleId) {
        return roleDao.getAllRoleGroups(startFrom, recordsCount,
                orderFieldNumber, orderType, roleId);
    }

    public List getRolesForCreateUser(List subId) {

        return roleDao.getRolesForFilter(StringUtils
                .collectionToCommaDelimitedString(subId), null, 0,
                Integer.MAX_VALUE);
    }

    public List getUnMappedRoleActions(
            long startFrom, long recordsCount, int orderFieldNumber,
            boolean ascending, long roleId, String actionName) {

        return roleDao.getUnMappedRoleActions(startFrom, recordsCount,
                orderFieldNumber, ascending ? DaoConstants.ASC
                        : DaoConstants.DESC, roleId, actionName);
    }

    public List getMappedRoleGroups(long startFrom,
            long recordsCount, int orderFieldNumber, boolean ascending,
            long roleId) {
        return roleDao.getMappedRoleGroups(startFrom, recordsCount, orderFieldNumber, ascending ? DaoConstants.ASC: DaoConstants.DESC, roleId);
    }

    @Override
    public int getMappedRoleGroupsCount(long roleId) {
        return roleDao.getMappedRoleGroupsCount(roleId);
    }


    public List getUnMappedRoleGroups(long startFrom,
            long recordsCount, int orderFieldNumber, boolean ascending,
            long roleId) {
        return roleDao.getUnMappedRoleGroups(startFrom, recordsCount, orderFieldNumber, ascending ? DaoConstants.ASC
                : DaoConstants.DESC, roleId);
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy