diff options
Diffstat (limited to 'src/main/java/com/mavlushechka/studentdatabase/controller')
11 files changed, 586 insertions, 0 deletions
diff --git a/src/main/java/com/mavlushechka/studentdatabase/controller/AdminPanelController.java b/src/main/java/com/mavlushechka/studentdatabase/controller/AdminPanelController.java new file mode 100755 index 0000000..82e6fa9 --- /dev/null +++ b/src/main/java/com/mavlushechka/studentdatabase/controller/AdminPanelController.java @@ -0,0 +1,226 @@ +package com.mavlushechka.studentdatabase.controller; + +import com.mavlushechka.studentdatabase.domain.*; +import com.mavlushechka.studentdatabase.repository.*; +import com.mavlushechka.studentdatabase.service.CustomUserDetailsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; + +import java.util.*; + +@Controller +public class AdminPanelController { + @Autowired + private CustomUserDetailsService userDetailsService; + @Autowired + private UserRepository userRepository; + @Autowired + private RoleRepository roleRepository; + @Autowired + private StudentRepository studentRepository; + @Autowired + private EducationalSystemRepository educationalSystemRepository; + @Autowired + private PassportRepository passportRepository; + @Autowired + private GraduatedInstitutionRepository graduatedInstitutionRepository; + @Autowired + private FamilyRepository familyRepository; + @Autowired + private HealthRepository healthRepository; + @Autowired + private JobRepository jobRepository; + @Autowired + private MilitaryServiceRepository militaryServiceRepository; + + @GetMapping("/admin-panel/create-users") + public String createUsers(@RequestParam String group, @RequestParam int number, Map<String, Object> model) { + for (int i = 1; i <= number; i ++) { + Role userRole = roleRepository.findByRole("USER"); + User user = new User(i + "student" + group, i + "student" + group, true, new HashSet<>(List.of(userRole))); + User userFromDb = userRepository.findByUsername(user.getUsername()); + + if (userFromDb != null) { + model.put("message", "User exists!"); + return "/admin-panel/add-users"; + } + + userDetailsService.saveUser(user); + } + return "redirect:/admin-panel/all-users"; + } + + @GetMapping("/admin-panel/all-users") + public String getUsers(Map<String, Object> model) { + Iterable<User> users = userRepository.findAll(); + model.put("users", users); + return "admin-panel/all-users"; + } + + @GetMapping("/admin-panel/information/all") + public String getAll(String id, String fullName, String group, Map<String, Object> model) { + Iterable<User> users = null; + Iterable<Student> students = null; + Iterable<Passport> passports = null; + Iterable<EducationalSystem> educationalSystems = null; + Iterable<GraduatedInstitution> graduatedInstitutions = null; + Iterable<Health> healths = null; + Iterable<Family> families = null; + Iterable<Job> jobs = null; + Iterable<MilitaryService> militaryServices = null; + + List<User> userList = new ArrayList<>(); + List<Student> studentList = new ArrayList<>(); + List<Passport> passportList = new ArrayList<>(); + List<EducationalSystem> educationalSystemList = new ArrayList<>(); + List<GraduatedInstitution> graduatedInstitutionList = new ArrayList<>(); + List<Health> healthList = new ArrayList<>(); + List<Family> familyList = new ArrayList<>(); + List<Job> jobList = new ArrayList<>(); + List<MilitaryService> militaryServiceList = new ArrayList<>(); + + if (id != null) { + userList.add(userRepository.findById(id).orElse(new User())); + Student student = studentRepository.findById(id).orElse(new Student()); + if (student.getPhoto() != null) { + student.setEncodedPhoto(Base64.getEncoder().encodeToString(student.getPhoto().getData())); + } + studentList.add(student); + passportList.add(passportRepository.findById(id).orElse(new Passport())); + educationalSystemList.add(educationalSystemRepository.findById(id).orElse(new EducationalSystem())); + graduatedInstitutionList.add(graduatedInstitutionRepository.findById(id).orElse(new GraduatedInstitution())); + healthList.add(healthRepository.findById(id).orElse(new Health())); + familyList.add(familyRepository.findById(id).orElse(new Family())); + jobList.add(jobRepository.findById(id).orElse(new Job())); + militaryServiceList.add(militaryServiceRepository.findById(id).orElse(new MilitaryService())); + } else if (fullName != null || group != null) { + ArrayList<String> ids = new ArrayList<>(); + if (fullName != null) { + Iterable<Passport> passportIterable; + try { + passportIterable = passportRepository.findByFirstNameAndLastName(fullName.split(" ")[0], fullName.split(" ")[1]); + } catch (ArrayIndexOutOfBoundsException arrayIndexOutOfBoundsException) { + passportIterable = passportRepository.findByFirstName(fullName.split(" ")[0]); + } + for (Passport passport : passportIterable) { + ids.add(passport.getId()); + } + } else { + Iterable<EducationalSystem> educationalSystemIterable; + educationalSystemIterable = educationalSystemRepository.findByGroup(group); + for (EducationalSystem educationalSystem : educationalSystemIterable) { + ids.add(educationalSystem.getId()); + } + } + + for (String eachId : ids) { + userList.add(userRepository.findById(eachId).orElse(new User())); + Student student = studentRepository.findById(eachId).orElse(new Student()); + if (student.getPhoto() != null) { + student.setEncodedPhoto(Base64.getEncoder().encodeToString(student.getPhoto().getData())); + } + studentList.add(student); + passportList.add(passportRepository.findById(eachId).orElse(new Passport())); + educationalSystemList.add(educationalSystemRepository.findById(eachId).orElse(new EducationalSystem())); + graduatedInstitutionList.add(graduatedInstitutionRepository.findById(eachId).orElse(new GraduatedInstitution())); + healthList.add(healthRepository.findById(eachId).orElse(new Health())); + familyList.add(familyRepository.findById(eachId).orElse(new Family())); + jobList.add(jobRepository.findById(eachId).orElse(new Job())); + militaryServiceList.add(militaryServiceRepository.findById(eachId).orElse(new MilitaryService())); + } + } else { + users = userRepository.findAll(); + students = studentRepository.findAll(); + passports = passportRepository.findAll(); + educationalSystems = educationalSystemRepository.findAll(); + graduatedInstitutions = graduatedInstitutionRepository.findAll(); + healths = healthRepository.findAll(); + families = familyRepository.findAll(); + jobs = jobRepository.findAll(); + militaryServices = militaryServiceRepository.findAll(); + } + if (id != null || fullName != null || group != null) { + users = userList; + students = studentList; + passports = passportList; + educationalSystems = educationalSystemList; + graduatedInstitutions = graduatedInstitutionList; + healths = healthList; + families = familyList; + jobs = jobList; + militaryServices = militaryServiceList; + } + + model.put("users", users); + model.put("students", students); + model.put("passports", passports); + model.put("educationalSystems", educationalSystems); + model.put("graduatedInstitutions", graduatedInstitutions); + model.put("healths", healths); + model.put("families", families); + model.put("jobs", jobs); + model.put("militaryServices", militaryServices); + return "admin-panel/information/all"; + } + + @GetMapping("/admin-panel/information/students") + public String getStudents(Map<String, Object> model) { + Iterable<Student> students = studentRepository.findAll(); + for (Student student : students) { + student.setEncodedPhoto(Base64.getEncoder().encodeToString(student.getPhoto().getData())); + } + model.put("students", students); + return "admin-panel/information/students"; + } + + @GetMapping("/admin-panel/information/educational-systems") + public String getEducationalSystems(Map<String, Object> model) { + Iterable<EducationalSystem> educationalSystems = educationalSystemRepository.findAll(); + model.put("educationalSystems", educationalSystems); + return "admin-panel/information/educational-systems"; + } + + @GetMapping("/admin-panel/information/passports") + public String getPassports(Map<String, Object> model) { + Iterable<Passport> passports = passportRepository.findAll(); + model.put("passports", passports); + return "admin-panel/information/passports"; + } + + @GetMapping("/admin-panel/information/graduated-institutions") + public String getGraduatedInstitutions(Map<String, Object> model) { + Iterable<GraduatedInstitution> graduatedInstitutions = graduatedInstitutionRepository.findAll(); + model.put("graduatedInstitutions", graduatedInstitutions); + return "admin-panel/information/graduated-institutions"; + } + + @GetMapping("/admin-panel/information/families") + public String getFamilies(Map<String, Object> model) { + Iterable<Family> families = familyRepository.findAll(); + model.put("families", families); + return "admin-panel/information/families"; + } + + @GetMapping("/admin-panel/information/health") + public String getHealth(Map<String, Object> model) { + Iterable<Health> health = healthRepository.findAll(); + model.put("health", health); + return "admin-panel/information/health"; + } + + @GetMapping("/admin-panel/information/jobs") + public String getJobs(Map<String, Object> model) { + Iterable<Job> jobs = jobRepository.findAll(); + model.put("jobs", jobs); + return "admin-panel/information/jobs"; + } + + @GetMapping("/admin-panel/information/military-services") + public String getMilitaryServices(Map<String, Object> model) { + Iterable<MilitaryService> militaryServices = militaryServiceRepository.findAll(); + model.put("militaryServices", militaryServices); + return "admin-panel/information/military-services"; + } +} diff --git a/src/main/java/com/mavlushechka/studentdatabase/controller/EducationalSystemController.java b/src/main/java/com/mavlushechka/studentdatabase/controller/EducationalSystemController.java new file mode 100755 index 0000000..bbdb870 --- /dev/null +++ b/src/main/java/com/mavlushechka/studentdatabase/controller/EducationalSystemController.java @@ -0,0 +1,37 @@ +package com.mavlushechka.studentdatabase.controller; + +import com.mavlushechka.studentdatabase.domain.EducationalSystem; +import com.mavlushechka.studentdatabase.domain.User; +import com.mavlushechka.studentdatabase.repository.EducationalSystemRepository; +import com.mavlushechka.studentdatabase.repository.UserRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.core.Authentication; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; + +import java.util.Map; +import java.util.Optional; + +@Controller +public class EducationalSystemController { + @Autowired + private UserRepository userRepository; + @Autowired + private EducationalSystemRepository educationalSystemRepository; + + @GetMapping("/information/educational-system") + public String getUserIdAndEducationalSystem(Authentication authentication, Map<String, Object> model) { + User user = userRepository.findByUsername(authentication.getName()); + EducationalSystem educationalSystem = educationalSystemRepository.findById(user.getId()).orElse(new EducationalSystem()); + model.put("user", user); + model.put("educationalSystem", educationalSystem); + return "information/educational-system"; + } + + @PostMapping("/information/educational-system/save") + public String saveEducationalSystemRepository(EducationalSystem educationalSystem) { + educationalSystemRepository.save(educationalSystem); + return "redirect:/"; + } +} diff --git a/src/main/java/com/mavlushechka/studentdatabase/controller/FamilyController.java b/src/main/java/com/mavlushechka/studentdatabase/controller/FamilyController.java new file mode 100755 index 0000000..abbd36c --- /dev/null +++ b/src/main/java/com/mavlushechka/studentdatabase/controller/FamilyController.java @@ -0,0 +1,37 @@ +package com.mavlushechka.studentdatabase.controller; + +import com.mavlushechka.studentdatabase.domain.Family; +import com.mavlushechka.studentdatabase.domain.User; +import com.mavlushechka.studentdatabase.repository.FamilyRepository; +import com.mavlushechka.studentdatabase.repository.UserRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.core.Authentication; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; + +import java.util.Map; +import java.util.Optional; + +@Controller +public class FamilyController { + @Autowired + private UserRepository userRepository; + @Autowired + private FamilyRepository familyRepository; + + @GetMapping("/information/family") + public String getUserAndFamily(Authentication authentication, Map<String, Object> model) { + User user = userRepository.findByUsername(authentication.getName()); + Family family = familyRepository.findById(user.getId()).orElse(new Family()); + model.put("user", user); + model.put("family", family); + return "information/family"; + } + + @PostMapping("/information/family/save") + public String saveFamily(Family family) { + familyRepository.save(family); + return "redirect:/"; + } +} diff --git a/src/main/java/com/mavlushechka/studentdatabase/controller/GraduatedInstitutionController.java b/src/main/java/com/mavlushechka/studentdatabase/controller/GraduatedInstitutionController.java new file mode 100755 index 0000000..c81a090 --- /dev/null +++ b/src/main/java/com/mavlushechka/studentdatabase/controller/GraduatedInstitutionController.java @@ -0,0 +1,37 @@ +package com.mavlushechka.studentdatabase.controller; + +import com.mavlushechka.studentdatabase.domain.GraduatedInstitution; +import com.mavlushechka.studentdatabase.domain.User; +import com.mavlushechka.studentdatabase.repository.GraduatedInstitutionRepository; +import com.mavlushechka.studentdatabase.repository.UserRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.core.Authentication; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; + +import java.util.Map; +import java.util.Optional; + +@Controller +public class GraduatedInstitutionController { + @Autowired + private UserRepository userRepository; + @Autowired + private GraduatedInstitutionRepository graduatedInstitutionRepository; + + @GetMapping("/information/graduated-institution") + public String getUserAndGraduatedInstitution(Authentication authentication, Map<String, Object> model) { + User user = userRepository.findByUsername(authentication.getName()); + GraduatedInstitution graduatedInstitution = graduatedInstitutionRepository.findById(user.getId()).orElse(new GraduatedInstitution()); + model.put("user", user); + model.put("graduatedInstitution", graduatedInstitution); + return "information/graduated-institution"; + } + + @PostMapping("/information/graduated-institution/save") + public String saveGraduatedInstitution(GraduatedInstitution graduatedInstitution) { + graduatedInstitutionRepository.save(graduatedInstitution); + return "redirect:/"; + } +} diff --git a/src/main/java/com/mavlushechka/studentdatabase/controller/HealthController.java b/src/main/java/com/mavlushechka/studentdatabase/controller/HealthController.java new file mode 100755 index 0000000..a09f133 --- /dev/null +++ b/src/main/java/com/mavlushechka/studentdatabase/controller/HealthController.java @@ -0,0 +1,37 @@ +package com.mavlushechka.studentdatabase.controller; + +import com.mavlushechka.studentdatabase.domain.Health; +import com.mavlushechka.studentdatabase.domain.User; +import com.mavlushechka.studentdatabase.repository.HealthRepository; +import com.mavlushechka.studentdatabase.repository.UserRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.core.Authentication; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; + +import java.util.Map; +import java.util.Optional; + +@Controller +public class HealthController { + @Autowired + private UserRepository userRepository; + @Autowired + private HealthRepository healthRepository; + + @GetMapping("/information/health") + public String getUserAndHealth(Authentication authentication, Map<String, Object> model) { + User user = userRepository.findByUsername(authentication.getName()); + Health health = healthRepository.findById(user.getId()).orElse(new Health()); + model.put("user", user); + model.put("health", health); + return "information/health"; + } + + @PostMapping("/information/health/save") + public String saveHealth(Health health) { + healthRepository.save(health); + return "redirect:/"; + } +} diff --git a/src/main/java/com/mavlushechka/studentdatabase/controller/HomeController.java b/src/main/java/com/mavlushechka/studentdatabase/controller/HomeController.java new file mode 100755 index 0000000..a21eea6 --- /dev/null +++ b/src/main/java/com/mavlushechka/studentdatabase/controller/HomeController.java @@ -0,0 +1,19 @@ +package com.mavlushechka.studentdatabase.controller; + +import org.springframework.security.core.Authentication; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; + +import java.util.Map; + +@Controller +public class HomeController { + @GetMapping("/") + public String getLoginButtonText(Authentication authentication, Map<String, Object> model) { + boolean authorized = authentication != null; + String loginButtonText = (authorized) ? authentication.getName() : "Kirish"; + model.put("authorized", authorized); + model.put("loginButtonText", loginButtonText); + return "index"; + } +} diff --git a/src/main/java/com/mavlushechka/studentdatabase/controller/JobController.java b/src/main/java/com/mavlushechka/studentdatabase/controller/JobController.java new file mode 100755 index 0000000..a0f879c --- /dev/null +++ b/src/main/java/com/mavlushechka/studentdatabase/controller/JobController.java @@ -0,0 +1,37 @@ +package com.mavlushechka.studentdatabase.controller; + +import com.mavlushechka.studentdatabase.domain.Job; +import com.mavlushechka.studentdatabase.domain.User; +import com.mavlushechka.studentdatabase.repository.JobRepository; +import com.mavlushechka.studentdatabase.repository.UserRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.core.Authentication; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; + +import java.util.Map; +import java.util.Optional; + +@Controller +public class JobController { + @Autowired + private UserRepository userRepository; + @Autowired + private JobRepository jobRepository; + + @GetMapping("/information/job") + public String getUserAndJob(Authentication authentication, Map<String, Object> model) { + User user = userRepository.findByUsername(authentication.getName()); + Job job = jobRepository.findById(user.getId()).orElse(new Job()); + model.put("user", user); + model.put("job", job); + return "information/job"; + } + + @PostMapping("/information/job/save") + public String saveJob(Job job) { + jobRepository.save(job); + return "redirect:/"; + } +} diff --git a/src/main/java/com/mavlushechka/studentdatabase/controller/MilitaryServiceController.java b/src/main/java/com/mavlushechka/studentdatabase/controller/MilitaryServiceController.java new file mode 100755 index 0000000..dde5635 --- /dev/null +++ b/src/main/java/com/mavlushechka/studentdatabase/controller/MilitaryServiceController.java @@ -0,0 +1,37 @@ +package com.mavlushechka.studentdatabase.controller; + +import com.mavlushechka.studentdatabase.domain.MilitaryService; +import com.mavlushechka.studentdatabase.domain.User; +import com.mavlushechka.studentdatabase.repository.MilitaryServiceRepository; +import com.mavlushechka.studentdatabase.repository.UserRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.core.Authentication; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; + +import java.util.Map; +import java.util.Optional; + +@Controller +public class MilitaryServiceController { + @Autowired + private UserRepository userRepository; + @Autowired + private MilitaryServiceRepository militaryServiceRepository; + + @GetMapping("/information/military-service") + public String getUserIdAndMilitaryService(Authentication authentication, Map<String, Object> model) { + User user = userRepository.findByUsername(authentication.getName()); + MilitaryService militaryService = militaryServiceRepository.findById(user.getId()).orElse(new MilitaryService()); + model.put("user", user); + model.put("militaryService", militaryService); + return "information/military-service"; + } + + @PostMapping("/information/military-service/save") + public String saveMilitaryService(MilitaryService militaryService) { + militaryServiceRepository.save(militaryService); + return "redirect:/"; + } +} diff --git a/src/main/java/com/mavlushechka/studentdatabase/controller/PassportController.java b/src/main/java/com/mavlushechka/studentdatabase/controller/PassportController.java new file mode 100755 index 0000000..35a8d7f --- /dev/null +++ b/src/main/java/com/mavlushechka/studentdatabase/controller/PassportController.java @@ -0,0 +1,37 @@ +package com.mavlushechka.studentdatabase.controller; + +import com.mavlushechka.studentdatabase.domain.Passport; +import com.mavlushechka.studentdatabase.domain.User; +import com.mavlushechka.studentdatabase.repository.PassportRepository; +import com.mavlushechka.studentdatabase.repository.UserRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.core.Authentication; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; + +import java.util.Map; +import java.util.Optional; + +@Controller +public class PassportController { + @Autowired + private UserRepository userRepository; + @Autowired + private PassportRepository passportRepository; + + @GetMapping("/information/passport") + public String getUserIdAndPassport(Authentication authentication, Map<String, Object> model) { + User user = userRepository.findByUsername(authentication.getName()); + Passport passport = passportRepository.findById(user.getId()).orElse(new Passport()); + model.put("user", user); + model.put("passport", passport); + return "information/passport"; + } + + @PostMapping("/information/passport/save") + public String savePassport(Passport passport) { + passportRepository.save(passport); + return "redirect:/"; + } +} diff --git a/src/main/java/com/mavlushechka/studentdatabase/controller/PasswordController.java b/src/main/java/com/mavlushechka/studentdatabase/controller/PasswordController.java new file mode 100755 index 0000000..d17d2f2 --- /dev/null +++ b/src/main/java/com/mavlushechka/studentdatabase/controller/PasswordController.java @@ -0,0 +1,41 @@ +package com.mavlushechka.studentdatabase.controller; + +import com.mavlushechka.studentdatabase.domain.User; +import com.mavlushechka.studentdatabase.repository.UserRepository; +import com.mavlushechka.studentdatabase.service.CustomUserDetailsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.core.Authentication; +import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.PostMapping; + +import java.util.Map; +import java.util.Objects; + +@Controller +public class PasswordController { + @Autowired + private CustomUserDetailsService userDetailsService; + @Autowired + UserRepository userRepository; + @Autowired + private BCryptPasswordEncoder bCryptPasswordEncoder; + + @PostMapping("/authentication/update-password") + public String updatePassword(Authentication authentication, String password, String newPassword, String newPassword2, Map<String, Object> model) { + User user = userRepository.findByUsername(authentication.getName()); + boolean incorrectPassword = !bCryptPasswordEncoder.matches(password, user.getPassword()); + boolean incorrectNewPassword = !Objects.equals(newPassword, newPassword2); + + model.put("incorrectPassword", incorrectPassword); + model.put("incorrectNewPassword", incorrectNewPassword); + + if (!incorrectPassword && !incorrectNewPassword) { + user.setPassword(newPassword); + userDetailsService.saveUser(user); + return "redirect:/"; + } else { + return "/authentication/change-password"; + } + } +} diff --git a/src/main/java/com/mavlushechka/studentdatabase/controller/StudentController.java b/src/main/java/com/mavlushechka/studentdatabase/controller/StudentController.java new file mode 100755 index 0000000..76bc0f2 --- /dev/null +++ b/src/main/java/com/mavlushechka/studentdatabase/controller/StudentController.java @@ -0,0 +1,41 @@ +package com.mavlushechka.studentdatabase.controller; + +import com.mavlushechka.studentdatabase.domain.Student; +import com.mavlushechka.studentdatabase.domain.User; +import com.mavlushechka.studentdatabase.repository.StudentRepository; +import com.mavlushechka.studentdatabase.repository.UserRepository; +import org.bson.BsonBinarySubType; +import org.bson.types.Binary; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.core.Authentication; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.multipart.MultipartFile; + +import java.io.IOException; +import java.util.Map; + +@Controller +public class StudentController { + @Autowired + private UserRepository userRepository; + @Autowired + private StudentRepository studentRepository; + + @GetMapping("/information/student") + public String getUserAndStudent(Authentication authentication, Map<String, Object> model) { + User user = userRepository.findByUsername(authentication.getName()); + Student student = studentRepository.findById(user.getId()).orElse(new Student()); + model.put("user", user); + model.put("student", student); + return "information/student"; + } + + @PostMapping("/information/student/save") + public String saveStudent(String id, String diploma, long telephoneNumber, String religion, String car, String house, MultipartFile photo) throws IOException { + Student student = new Student(id, diploma, telephoneNumber, religion, car, house, new Binary(BsonBinarySubType.BINARY, photo.getBytes())); + studentRepository.save(student); + return "redirect:/"; + } +}
\ No newline at end of file |