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

io.mosip.registration.enums.Role Maven / Gradle / Ivy

package io.mosip.registration.enums;

import java.util.*;
import java.util.stream.Collectors;

public enum Role {

    REGISTRATION_SUPERVISOR,
    REGISTRATION_OFFICER,
    Default;

    public static List getValidRoles() {
        return Arrays.asList(REGISTRATION_OFFICER.name(), REGISTRATION_SUPERVISOR.name(), Default.name());
    }

    public static List getSupervisorAuthRoles() {
        return Arrays.asList(REGISTRATION_SUPERVISOR.name());
    }

    public static boolean hasOperatorRole(Collection userRoles) {
        return userRoles != null && userRoles.contains(REGISTRATION_OFFICER.name());
    }

    public static boolean hasSupervisorRole(Collection userRoles) {
        return userRoles != null && userRoles.stream().anyMatch(r -> getSupervisorAuthRoles().contains(r));
    }

    public static boolean isDefaultUser(Collection userRoles) {
        return userRoles != null && userRoles.contains(Default.name());
    }

    public static boolean hasAnyRegistrationRoles(Collection userRoles) {
        return userRoles != null &&
                userRoles.stream().anyMatch(r ->  getValidRoles().contains(r));
    }

    public static Role getHighestRankingRole(Collection userRoles) {
        if(isDefaultUser(userRoles))
            return Default;

        if(hasSupervisorRole(userRoles))
            return REGISTRATION_SUPERVISOR;

        if(hasOperatorRole(userRoles))
            return REGISTRATION_OFFICER;

        return null;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy