| 
1 | 1 | package springAngularApp.system.ws;  | 
2 | 2 | 
 
  | 
 | 3 | +import org.hibernate.SessionFactory;  | 
3 | 4 | import org.springframework.beans.factory.annotation.Autowired;  | 
4 | 5 | import org.springframework.http.ResponseEntity;  | 
5 | 6 | import org.springframework.security.crypto.password.PasswordEncoder;  | 
 | 
13 | 14 | import springAngularApp.users.domain.repositories.UserGroupRepository;  | 
14 | 15 | import springAngularApp.users.domain.repositories.UserRepository;  | 
15 | 16 | 
 
  | 
 | 17 | +import java.io.File;  | 
 | 18 | +import java.io.IOException;  | 
 | 19 | + | 
 | 20 | +import static com.google.common.collect.Lists.newArrayList;  | 
 | 21 | +import static com.google.common.io.Files.readLines;  | 
 | 22 | +import static java.nio.charset.Charset.defaultCharset;  | 
16 | 23 | import static org.springframework.http.HttpStatus.OK;  | 
17 | 24 | import static springAngularApp.users.domain.entities.UserAuthorities.*;  | 
18 |  | -import static springAngularApp.users.domain.entities.UserAuthorities.ROLE_USER_GROUP_VIEW;  | 
19 | 25 | 
 
  | 
20 | 26 | /**  | 
21 | 27 |  * TODO Delete me  | 
22 | 28 |  */  | 
23 | 29 | @RestController  | 
 | 30 | +@SuppressWarnings("all")  | 
24 | 31 | public class InitDBController {  | 
25 | 32 | 
 
  | 
26 | 33 |     @Autowired private UserAuthorityRepository userAuthorityRepository;  | 
27 | 34 |     @Autowired private UserGroupRepository userGroupRepository;  | 
28 | 35 |     @Autowired private UserRepository userRepository;  | 
29 | 36 |     @Autowired private PasswordEncoder passwordEncoder;  | 
 | 37 | +    @Autowired private SessionFactory sessionFactory;  | 
30 | 38 | 
 
  | 
31 | 39 |     @Transactional  | 
32 | 40 |     @RequestMapping(value = "/initDB")  | 
33 |  | -    public ResponseEntity init() {  | 
34 |  | -        userRepository.deleteAll();  | 
35 |  | -        userGroupRepository.deleteAll();  | 
36 |  | -        userAuthorityRepository.deleteAll();  | 
 | 41 | +    public ResponseEntity init() throws IOException {  | 
 | 42 | +        sessionFactory.getCurrentSession().createQuery("DELETE FROM User").executeUpdate();  | 
 | 43 | +        sessionFactory.getCurrentSession().createQuery("DELETE FROM UserGroup").executeUpdate();  | 
 | 44 | +        sessionFactory.getCurrentSession().createQuery("DELETE FROM UserAuthority").executeUpdate();  | 
 | 45 | +        sessionFactory.getCurrentSession().flush();  | 
 | 46 | +        sessionFactory.getCurrentSession().clear();  | 
37 | 47 | 
 
  | 
38 | 48 |         UserGroup adminGroup = new UserGroup("Administrator");  | 
39 | 49 |         adminGroup.setSuperUserGroup(true);  | 
@@ -65,23 +75,32 @@ public ResponseEntity init() {  | 
65 | 75 |         admin.setFirstName("Bob");  | 
66 | 76 |         admin.setLastName("Smith");  | 
67 | 77 | 
 
  | 
68 |  | -        User user = new User("user", password, defaultUserGroup);  | 
69 |  | -        admin.setFirstName("Adam");  | 
70 |  | -        admin.setLastName("Hansen");  | 
71 |  | - | 
72 |  | -        userAuthorityRepository.save(roleDefault);  | 
73 |  | -        userAuthorityRepository.save(roleUserEdit);  | 
74 |  | -        userAuthorityRepository.save(roleUserView);  | 
75 |  | -        userAuthorityRepository.save(roleUserDelete);  | 
76 |  | -        userAuthorityRepository.save(roleConfigurationView);  | 
77 |  | -        userAuthorityRepository.save(roleUserGroupEdit);  | 
78 |  | -        userAuthorityRepository.save(roleUserGroupView);  | 
79 |  | -        userAuthorityRepository.save(roleUserGroupDelete);  | 
80 |  | -        userGroupRepository.save(adminGroup);  | 
81 |  | -        userGroupRepository.save(defaultUserGroup);  | 
 | 78 | +        userAuthorityRepository.save(  | 
 | 79 | +                newArrayList(  | 
 | 80 | +                        roleDefault,  | 
 | 81 | +                        roleUserEdit,  | 
 | 82 | +                        roleUserView,  | 
 | 83 | +                        roleUserDelete,  | 
 | 84 | +                        roleConfigurationView,  | 
 | 85 | +                        roleUserGroupEdit,  | 
 | 86 | +                        roleUserGroupView,  | 
 | 87 | +                        roleUserGroupDelete  | 
 | 88 | +                ));  | 
 | 89 | +        userGroupRepository.save(newArrayList(adminGroup, defaultUserGroup));  | 
82 | 90 |         userRepository.save(admin);  | 
83 |  | -        userRepository.save(user);  | 
 | 91 | +        generateAdditionalUsers(adminGroup, password);  | 
84 | 92 |         return new ResponseEntity(OK);  | 
85 | 93 |     }  | 
86 | 94 | 
 
  | 
 | 95 | +    private void generateAdditionalUsers(UserGroup adminGroup, String password) throws IOException {  | 
 | 96 | +        File fileWithNames = new File(getClass().getClassLoader().getResource("utils/names.txt").getFile());  | 
 | 97 | +        readLines(fileWithNames, defaultCharset()).forEach(name -> {  | 
 | 98 | +            String[] nameParts = name.split(" ");  | 
 | 99 | +            User user = new User(nameParts[0] + nameParts[1], password, adminGroup);  | 
 | 100 | +            user.setFirstName(nameParts[0]);  | 
 | 101 | +            user.setLastName(nameParts[1]);  | 
 | 102 | +            userRepository.save(user);  | 
 | 103 | +        });  | 
 | 104 | +    }  | 
 | 105 | + | 
87 | 106 | }  | 
0 commit comments