Project

General

Profile

« Previous | Next » 

Revision 57607

warnings

View differences:

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