Revision 57607
Added by Michele Artini over 4 years ago
OrganizationController.java | ||
---|---|---|
2 | 2 |
|
3 | 3 |
import java.util.Arrays; |
4 | 4 |
import java.util.List; |
5 |
import java.util.stream.Collectors; |
|
5 | 6 |
|
6 | 7 |
import org.apache.commons.lang3.StringUtils; |
7 | 8 |
import org.springframework.beans.factory.annotation.Autowired; |
... | ... | |
20 | 21 |
import eu.dnetlib.organizations.model.utils.RelationByOrg; |
21 | 22 |
import eu.dnetlib.organizations.model.view.OrganizationSimpleView; |
22 | 23 |
import eu.dnetlib.organizations.model.view.OrganizationView; |
24 |
import eu.dnetlib.organizations.model.view.WarningView; |
|
23 | 25 |
import eu.dnetlib.organizations.repository.OpenaireSimRelRepository; |
24 | 26 |
import eu.dnetlib.organizations.repository.OrganizationRepository; |
25 | 27 |
import eu.dnetlib.organizations.repository.readonly.OrganizationSimpleViewRepository; |
26 | 28 |
import eu.dnetlib.organizations.repository.readonly.OrganizationViewRepository; |
29 |
import eu.dnetlib.organizations.repository.readonly.WarningViewRepository; |
|
27 | 30 |
import eu.dnetlib.organizations.utils.DatabaseUtils; |
31 |
import eu.dnetlib.organizations.utils.OpenOrgsConstants; |
|
28 | 32 |
import eu.dnetlib.organizations.utils.RelationType; |
29 | 33 |
|
30 | 34 |
@RestController |
... | ... | |
40 | 44 |
@Autowired |
41 | 45 |
private OpenaireSimRelRepository openaireSimRelRepository; |
42 | 46 |
@Autowired |
47 |
private WarningViewRepository warningViewRepository; |
|
48 |
@Autowired |
|
43 | 49 |
private DatabaseUtils databaseUtils; |
44 | 50 |
|
45 | 51 |
@RequestMapping(value = "/save", method = RequestMethod.POST) |
... | ... | |
121 | 127 |
@RequestMapping(value = "/similarities", method = RequestMethod.GET) |
122 | 128 |
public List<OpenaireSimRel> findSimilaritiesById(@RequestParam final String id, final Authentication authentication) { |
123 | 129 |
if (UserInfo.isSuperUser(authentication) || organizationRepository.verifyAuthorizationForId(id, authentication.getName())) { |
124 |
return openaireSimRelRepository.findByLocalId(id); |
|
130 |
return openaireSimRelRepository.findByLocalId(id).stream().filter(s -> !s.getOaOriginalId().startsWith(OpenOrgsConstants.OPENORGS_PREFIX)).collect(Collectors.toList());
|
|
125 | 131 |
} else { |
126 | 132 |
throw new RuntimeException("User not authorized"); |
127 | 133 |
} |
128 | 134 |
} |
129 | 135 |
|
136 |
@RequestMapping(value = "/warnings", method = RequestMethod.GET) |
|
137 |
public Iterable<WarningView> findWarningsById(final Authentication authentication) { |
|
138 |
if (UserInfo.isSuperUser(authentication)) { |
|
139 |
return warningViewRepository.findAll(); |
|
140 |
} else { |
|
141 |
throw new RuntimeException("User not authorized"); |
|
142 |
} |
|
143 |
} |
|
144 |
|
|
130 | 145 |
@RequestMapping(value = "/similarities", method = RequestMethod.POST) |
131 | 146 |
public List<OpenaireSimRel> saveSimilarities(@RequestBody final List<OpenaireSimRel> simrels, final Authentication authentication) { |
132 | 147 |
|
133 |
final boolean b = UserInfo.isSuperUser(authentication) || simrels.stream() |
|
134 |
.map(OpenaireSimRel::getLocalId) |
|
135 |
.distinct() |
|
136 |
.allMatch(id -> organizationRepository.verifyAuthorizationForId(id, authentication.getName())); |
|
148 |
final boolean b = UserInfo.isSuperUser(authentication) |
|
149 |
|| simrels.stream().map(OpenaireSimRel::getLocalId).distinct().allMatch(id -> organizationRepository.verifyAuthorizationForId(id, authentication.getName())); |
|
137 | 150 |
|
138 | 151 |
if (b) { |
139 | 152 |
return openaireSimRelRepository.saveAll(simrels); |
Also available in: Unified diff
warnings