package eu.dnetlib.repo.manager.service.security; import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.authority.SimpleGrantedAuthority; import java.util.Collection; public interface RoleMappingService { /** * @param fullName * @param prefix * @return */ String getRepoNameWithoutType(String fullName, String prefix); /** * @param roleId Role Id * @return Converts {@param roleId} to a repo Id. */ String getRepoIdByRoleId(String roleId); /** * * @param roleIds Collection of roles * @return Converts {@param roleIds} to a repo Ids. */ Collection getRepoIdsByRoleIds(Collection roleIds); /** * @param repoId Repository Id * @return Converts {@param repoId} to a role Id. */ String getRoleIdByRepoId(String repoId); /** * @param repoIds Collection of Repository Ids * @return Converts {@param repoIds} to role Ids. */ Collection getRoleIdsByRepoIds(Collection repoIds); /** * @param authorityId Authority Id * @return Converts {@param authorityId} to repo Id. */ String convertAuthorityIdToRepoId(String authorityId); /** * @param authority Granted authority * @return Converts {@param authority} to repo Id. */ String convertAuthorityToRepoId(GrantedAuthority authority); /** * @param repoId Repository Id * @return */ String convertRepoIdToAuthorityId(String repoId); /** * @param repoId Repository Id * @return Converts {@param repoId} to {@link String} role id url encoded ($ -> %24) * // TODO: remove role encoding and perform url decoding when mapping authorities. (Must be performed in all OpenAIRE projects because of Redis) */ String convertRepoIdToEncodedAuthorityId(String repoId); /** * @param repoId Repository Id * @return Converts {@param repoId} to {@link SimpleGrantedAuthority} with the role url encoded ($ -> %24) * // TODO: remove role encoding and perform url decoding when mapping authorities. (Must be performed in all OpenAIRE projects because of Redis) */ SimpleGrantedAuthority convertRepoIdToAuthority(String repoId); }