38 lines
1.4 KiB
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;
|
|
}
|
|
}
|
|
}
|