package eu.dnetlib.uoamonitorservice.service; import eu.dnetlib.uoaauthorizationlibrary.security.AuthorizationService; import eu.dnetlib.uoamonitorservice.generics.Common; import eu.dnetlib.uoamonitorservice.primitives.Visibility; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service public class CommonService { AuthorizationService authorizationService; @Autowired public CommonService(AuthorizationService authorizationService) { this.authorizationService = authorizationService; } public boolean hasAccessAuthority(String type, String alias, boolean isDefault) { if(this.authorizationService.isPortalAdmin() || this.authorizationService.isCurator(type)) { return true; } else if(!isDefault) { return this.authorizationService.isManager(type, alias); } return false; } public boolean hasVisibilityAuthority(String type, String alias, Common common) { if(authorizationService.isPortalAdmin() || authorizationService.isCurator(type) || authorizationService.isManager(type, alias)) { return true; } else if(authorizationService.isMember(type, alias) && common.getVisibility() != Visibility.PRIVATE) { return true; } else { return common.getVisibility() == Visibility.PUBLIC; } } }