package com.plannaplan.security; import java.util.Optional; import com.plannaplan.types.UserRoles; import org.springframework.security.core.GrantedAuthority; /** * Users Roles for spring app */ public enum AuthorityRoles implements GrantedAuthority { STUDENT("ROLE_STUDENT"), DEANERY("ROLE_DEANERY"), ADMIN("ROLE_ADMIN"), TEST_USER("ROLE_TESTUSER"), DEVELOPER("ROLE_DEVELOPER"); private String role; AuthorityRoles(String role) { this.role = role; } @Override public String getAuthority() { return this.role; } /** * map buisness logic UserRoles enum to spring enum * * @param role buisness logic enum * @return restservice AuthorityRoles enum */ public static final Optional getAuthorityRole(UserRoles role) { switch (role) { case ADMIN: return Optional.of(AuthorityRoles.ADMIN); case DEANERY: return Optional.of(AuthorityRoles.DEANERY); case STUDENT: return Optional.of(AuthorityRoles.STUDENT); case TEST_USER: return Optional.of(AuthorityRoles.TEST_USER); case DEVELOPER: return Optional.of(AuthorityRoles.DEVELOPER); default: return Optional.empty(); } } }