uoa-monitor-service/src/main/java/eu/dnetlib/uoamonitorservice/service/CommonService.java

38 lines
1.4 KiB
Java

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;
}
}
}