Advertisement
Guest User

Untitled

a guest
Oct 13th, 2018
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.19 KB | None | 0 0
  1. package com.cpu.user;
  2.  
  3. import org.springframework.beans.factory.annotation.Autowired;
  4. import org.springframework.beans.factory.annotation.Value;
  5. import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
  6. import org.springframework.stereotype.Service;
  7.  
  8. import java.util.List;
  9.  
  10. @Service
  11. public class UserServiceImpl implements UserService {
  12.  
  13. private static BCryptPasswordEncoder PASSWORD_ENCODER = new BCryptPasswordEncoder();
  14. @Value("${adminId}")
  15. private String ADMIN_ID;
  16. @Value("${adminPassword}")
  17. private String ADMIN_PASS;
  18.  
  19.  
  20.  
  21. @Autowired
  22. private UserRepository repository;
  23.  
  24. @Override
  25. public User findOne(long id) {
  26. return repository.getOne(id);
  27. }
  28.  
  29. @Override
  30. public User save(User user) throws Exception {
  31. if(!hasDuplicate(user)){
  32. encryptPassword(user);
  33. return repository.save(user);
  34. }
  35. return null;
  36. }
  37.  
  38.  
  39. @Override
  40. public User updateUser(User user) throws Exception {
  41. User savedUser = repository.getOne(user.getId());
  42. if(!hasDuplicate(user)){
  43. savedUser.setUsername(user.getUsername());
  44. savedUser.setAdmin(user.isAdmin());
  45. savedUser.setDepartment(user.getDepartment());
  46. savedUser.setIdNumber(user.getIdNumber());
  47. savedUser.setImage(user.getImage());
  48. savedUser.setEmail(user.getEmail());
  49. }
  50. return repository.save(savedUser);
  51.  
  52. }
  53.  
  54. @Override
  55. public boolean noAdmin() {
  56. List<User> adminUsers = repository.findByAdminIsTrue();
  57. return adminUsers==null || adminUsers.isEmpty();
  58. }
  59.  
  60. @Override
  61. public void initializeAdmin() throws Exception {
  62. User user = new User();
  63. user.setAdmin(true);
  64. user.setIdNumber(ADMIN_ID);
  65. user.setPassword(ADMIN_PASS);
  66. save(user);
  67. }
  68.  
  69. @Override
  70. public boolean hasDuplicate(User user) throws Exception {
  71. User duplicateIdNo = repository.findByIdNumber(user.getIdNumber());
  72. if(duplicate(user, duplicateIdNo)){
  73. throw new Exception("ID number is already in used!");
  74. }
  75. User duplicate = repository.findByUsername(user.getUsername());
  76. if(duplicate(user, duplicate)){
  77. throw new Exception("Duplicate username!");
  78. }
  79. duplicate= repository.findByEmail(user.getUsername());
  80. if(duplicate(user, duplicate)){
  81. throw new Exception("Duplicate email!");
  82. }
  83. return false;
  84. }
  85.  
  86. @Override
  87. public User getUser(String idNumber, String password) {
  88. User user = repository.findByIdNumber(idNumber);
  89. if(user!=null && PASSWORD_ENCODER.matches(password,user.getPassword())){
  90. return user;
  91. }
  92. return null;
  93. }
  94.  
  95.  
  96. private boolean duplicate(User user, User duplicate) {
  97. return duplicate!=null && duplicate.getId()==user.getId();
  98. }
  99.  
  100. private void encryptPassword(User user) {
  101. BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
  102. String encodedPassword = passwordEncoder.encode(user.getPassword());
  103. user.setPassword(encodedPassword);
  104. }
  105. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement