UserDetailsCore.java

package fr.metabocloud.core.model;

import fr.metabohub.users_apis_authorizations.model.UserApiAuthorizationsResponse.TokenAuthorizationsEnum;
import fr.metabohub.users_apis_authorizations.model.UserApiAuthorizationsResponse.UserRolesEnum;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

import java.util.Set;

/**
 * <p>
 * UserDetailsCore class.
 * </p>
 *
 * @author Nils Paulhe
 * @since 1.0.0
 * @version 1.0.0
 */
@Accessors(chain = true)
public class UserDetailsCore //
        implements IUserDetails {

    /**
     * User's ORCID
     */
    protected @Getter @Setter String orcid;

    /**
     * User's EMAIL
     */
    protected @Getter @Setter String email;

    /**
     * User's roles (user, admin, ...)
     */
    protected @Getter @Setter Set<UserRolesEnum> roles;

    /**
     * User's token's authorization (CRUD)
     */
    protected @Getter @Setter Set<TokenAuthorizationsEnum> authorizations;

    public boolean hasRole(final UserRolesEnum role) {
        return hasRole(this.roles, role);
    }

    public boolean hasAuthorization(final TokenAuthorizationsEnum authorization) {
        return hasAuthorization(this.authorizations, authorization);
    }
}