diff --git a/BackEnd/src/main/java/studycave/studycaverestservice/usos/AuthorizationService.java b/BackEnd/src/main/java/studycave/studycaverestservice/usos/AuthorizationService.java index 21907be..e32e919 100644 --- a/BackEnd/src/main/java/studycave/studycaverestservice/usos/AuthorizationService.java +++ b/BackEnd/src/main/java/studycave/studycaverestservice/usos/AuthorizationService.java @@ -208,10 +208,22 @@ public class AuthorizationService { JSONArray participants = course.getJSONArray("user_groups").getJSONObject(0).getJSONArray("participants"); for (int j = 0 ; j < participants.length() ; j++){ String id = participants.getJSONObject(j).getString("id"); - Optional user = userRepository.findByUsosUserUsosId(id); - if (user.isPresent()) - if (!studyGroupMemberRepository.findByUserUsosUserUsosIdAndGroupUsosGroupId(id, groupId).isPresent()) - studyGroup.getMembers().add(new StudyGroupMember(studyGroup, user.get(), false)); + Optional userCheck = userRepository.findByUsosUserUsosId(id); + User user = null; + if (userCheck.isPresent()) + user = userCheck.get(); + else { + user = new User(); + String generatedPassword = PasswordGenerator.generatePassword(16, ALPHA_CAPS + ALPHA + NUMERIC); + UsosUser usosUser = new UsosUser(id, bCryptPasswordEncoder.encode(generatedPassword)); + user.setUsosUser(usosUser); + user.setName(participants.getJSONObject(j).getString("first_name")); + user.setSurname(participants.getJSONObject(j).getString("last_name")); + user.setUsername(id); + user = userRepository.save(user); + } + if (!studyGroupMemberRepository.findByUserUsosUserUsosIdAndGroupUsosGroupId(id, groupId).isPresent()) + studyGroup.getMembers().add(new StudyGroupMember(studyGroup, user, false)); } groupRepository.save(studyGroup); }