IUserDetails.java

package fr.metabocloud.core.model;

import java.util.Set;

import fr.metabohub.users_apis_authorizations.model.UserApiAuthorizationsResponse.TokenAuthorizationsEnum;
import fr.metabohub.users_apis_authorizations.model.UserApiAuthorizationsResponse.UserRolesEnum;

/**
 * <p>
 * IUserDetails interface.
 * </p>
 *
 * @author Nils Paulhe
 * @since 1.0.0
 * @version 1.0.0
 */
public interface IUserDetails {

    /**
     * <p>
     * hasRole.
     * </p>
     *
     * @param roles a {@link java.util.Set} object
     * @param ro    a
     *              {@link fr.metabohub.users_apis_authorizations.model.UserApiAuthorizationsResponse.UserRolesEnum}
     *              object
     * @return a boolean
     */
    default boolean hasRole(//
            final Set<UserRolesEnum> roles, //
            final UserRolesEnum ro) {
        return roles.contains(ro);
    }

    /**
     * <p>
     * hasAuthorization.
     * </p>
     *
     * @param authorizations a {@link java.util.Set} object
     * @param auth           a
     *                       {@link fr.metabohub.users_apis_authorizations.model.UserApiAuthorizationsResponse.TokenAuthorizationsEnum}
     *                       object
     * @return a boolean
     */
    default boolean hasAuthorization(//
            final Set<TokenAuthorizationsEnum> authorizations, //
            final TokenAuthorizationsEnum auth) {
        return authorizations.contains(auth);
    }
}