Revision 57650
Added by Michele Artini over 4 years ago
UserController.java | ||
---|---|---|
1 | 1 |
package eu.dnetlib.organizations.controller; |
2 | 2 |
|
3 | 3 |
import java.util.HashMap; |
4 |
import java.util.List; |
|
4 | 5 |
import java.util.Map; |
5 | 6 |
|
6 |
import org.apache.commons.codec.digest.DigestUtils; |
|
7 | 7 |
import org.springframework.beans.factory.annotation.Autowired; |
8 | 8 |
import org.springframework.security.core.Authentication; |
9 | 9 |
import org.springframework.web.bind.annotation.DeleteMapping; |
... | ... | |
13 | 13 |
import org.springframework.web.bind.annotation.RequestParam; |
14 | 14 |
import org.springframework.web.bind.annotation.RestController; |
15 | 15 |
|
16 |
import eu.dnetlib.organizations.model.User; |
|
17 | 16 |
import eu.dnetlib.organizations.model.view.UserView; |
18 | 17 |
import eu.dnetlib.organizations.repository.UserRepository; |
19 | 18 |
import eu.dnetlib.organizations.repository.readonly.UserViewRepository; |
20 | 19 |
import eu.dnetlib.organizations.utils.DatabaseUtils; |
21 |
import eu.dnetlib.organizations.utils.OpenOrgsConstants; |
|
22 | 20 |
|
23 | 21 |
@RestController |
24 | 22 |
public class UserController { |
25 | 23 |
|
26 |
private static final String DEFAULT_PASSWORD = "dnet"; |
|
27 |
|
|
28 | 24 |
@Autowired |
29 | 25 |
private UserRepository userRepository; |
26 |
|
|
30 | 27 |
@Autowired |
31 | 28 |
private UserViewRepository userViewRepository; |
32 | 29 |
@Autowired |
33 | 30 |
private DatabaseUtils dbUtils; |
34 | 31 |
|
35 | 32 |
@PostMapping(value = "/public_api/newUser") |
36 |
public Map<String, Integer> newUser(final @RequestParam String email) { |
|
33 |
public Map<String, Integer> newUser(final @RequestBody List<String> countries, final Authentication authentication) { |
|
34 |
|
|
35 |
final String email = authentication.getName(); |
|
36 |
|
|
37 | 37 |
final Map<String, Integer> res = new HashMap<>(); |
38 |
if (userRepository.existsById(email)) { |
|
38 |
|
|
39 |
if (!UserInfo.isNotAuthorized(authentication) || userRepository.existsById(email)) { |
|
39 | 40 |
res.put("status", 2); |
40 | 41 |
} else { |
41 |
final User user = new User(); |
|
42 |
user.setEmail(email); |
|
43 |
user.setPassword("{MD5}" + DigestUtils.md5Hex(DEFAULT_PASSWORD)); |
|
44 |
user.setRole(OpenOrgsConstants.pendingRole); |
|
45 |
user.setValid(false); |
|
46 |
userRepository.save(user); |
|
42 |
dbUtils.newUser(email, countries); |
|
47 | 43 |
res.put("status", 1); |
48 | 44 |
} |
49 | 45 |
return res; |
Also available in: Unified diff
new registration form