123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185 |
- package Controller;
- import HibernateEntities.*;
- import ServiceEntites.LoginUser;
- import org.springframework.stereotype.Controller;
- import org.springframework.web.bind.annotation.*;
- import org.springframework.web.servlet.ModelAndView;
- import org.springframework.web.servlet.mvc.support.RedirectAttributes;
- import java.util.*;
- import static DAOImplement.AdminDao.getAdminList;
- import static DAOImplement.AdminDao.getAdminMap;
- import static DAOImplement.ClientsDao.getClientList;
- import static DAOImplement.ClientsDao.getClientMap;
- import static DAOImplement.GroupDao.getGroupList;
- import static DAOImplement.StudentDao.getStudentsMap;
- import static DAOImplement.StudentDao.loadStudent;
- import static DAOImplement.UsersDao.getUserNameList;
- import static DAOImplement.UsersDao.getUserObjectList;
- /**
- * Created by kinetik on 25.02.17.
- */
- @Controller
- @SessionAttributes("userObject")
- public class LoginController {
- ModelAndView mvAdmin = new ModelAndView("loginViews/adminBar");
- ModelAndView mvClient = new ModelAndView("loginViews/ownerBar");
- ModelAndView mvStudent = new ModelAndView("loginViews/studentBar");
- ModelAndView mvUsers = new ModelAndView("loginViews/index");
- @RequestMapping(value = {"/", "welcome"}, method = RequestMethod.GET)
- public ModelAndView main() {
- try {
- mvUsers.addObject("userList", getUserNameList());
- mvUsers.addObject("userJSP", new LoginUser());
- return mvUsers;
- } catch (Exception ex){
- return new ModelAndView("otherViews/errorView");
- }
- }
- //Метод осуществляет проверку первого уровня аутентификации. Комментарий про мапу аналогичен след методу - надо подумать+посовещаться
- @RequestMapping(value = "/check-user")
- public ModelAndView checkUser(@ModelAttribute("userJSP") LoginUser user) {
- HashMap<String, UsersEntity> userDict = getUserObjectList();
- try {
- if(userDict.get(user.getName()).getUserPassword().equals(user.getPassword())){
- if(Objects.equals(user.getName(), "модератор")){
- ArrayList<String> adminList = getAdminList();
- //Нет смысла создавать LoginAdmin - поля те же, что и у заказчика
- mvAdmin.addObject("adminLogin", new LoginUser());
- mvAdmin.addObject("adminList", adminList);
- mvUsers.addObject("message","");
- return mvAdmin;
- } else if(Objects.equals(user.getName(), "заказчик")){
- ArrayList<String> clientList = getClientList();
- mvClient.addObject("clientLogin", new LoginUser());
- mvClient.addObject("clientList", clientList);
- mvUsers.addObject("message","");
- return mvClient;
- } else {
- mvUsers.addObject("message","");
- mvStudent.addObject("studentLogin", new LoginUser());
- return mvStudent;
- }
- } else {
- mvUsers.addObject("message","Bad password");
- }
- } catch (Exception ex) {
- return new ModelAndView("otherViews/errorView");
- }
- return mvUsers;
- }
- @RequestMapping(value = "/checkClient", method = RequestMethod.POST)
- public ModelAndView checkClient(@ModelAttribute("clientLogin") LoginUser client, RedirectAttributes redir){
- try {
- HashMap<String, ClientsEntity> clientAll = getClientMap();
- if (clientAll.containsKey(client.getName())) {
- if ((clientAll.get(client.getName()).getClPassword()).equals(client.getPassword().trim())) {
- mvClient.addObject("message", "");
- } else {
- mvClient.addObject("message", "Bad password");
- return mvClient;
- }
- } else {
- mvClient.addObject("message", "Bad login");
- return mvClient;
- }
- ClientsEntity clientForTrans = clientAll.get(client.getName());
- redir.addFlashAttribute("Client", clientForTrans);
- return new ModelAndView("redirect:/PCabinClientControl");
- } catch (Exception ex) {
- return new ModelAndView("otherViews/errorView");
- }
- }
- @RequestMapping(value = "/checkAdmin", method = RequestMethod.POST)
- public ModelAndView checkAdmin(@ModelAttribute("adminLogin") LoginUser admin, RedirectAttributes redir){
- try {
- HashMap<String, ModeratorsEntity> adminMap = getAdminMap();
- if (adminMap.containsKey(admin.getName())) {
- if ((adminMap.get(admin.getName()).getModPassword()).equals(admin.getPassword().trim())) {
- mvAdmin.addObject("message", "");
- } else {
- mvAdmin.addObject("message", "Bad password");
- return mvAdmin;
- }
- } else {
- mvAdmin.addObject("message", "Bad login");
- return mvAdmin;
- }
- ModeratorsEntity adminForTrans = adminMap.get(admin.getName());
- redir.addFlashAttribute("Admin", adminForTrans);
- return new ModelAndView("redirect:/PCabinAdminControl");
- } catch (Exception ex) {
- return new ModelAndView("otherViews/errorView");
- }
- }
- @RequestMapping(value = "/loadStudents", method = RequestMethod.GET)
- @ResponseBody
- public List<StudentsEntity> loadStudents(@RequestParam(value = "groupId", required = true) Integer groupId) throws IllegalStateException {
- try {
- List<StudentsEntity> stList = loadStudent(groupId);
- return stList;
- } catch (Exception ex) {
- List<StudentsEntity> stList = new ArrayList<>();
- StudentsEntity failStudent = new StudentsEntity();
- failStudent.setStFamily("Ошибка");
- failStudent.setStFirstName("Ошибка");
- failStudent.setStSecName("Ошибка");
- stList.add(failStudent);
- return stList;
- }
- }
- @RequestMapping(value = "/loadGroups", method = RequestMethod.GET)
- @ResponseBody
- public List<GroupsEntity> loadGroups(){
- try {
- List<GroupsEntity> groupList = getGroupList();
- return groupList;
- } catch (Exception ex){
- List<GroupsEntity> grList = new ArrayList<>();
- GroupsEntity failGroup = new GroupsEntity();
- failGroup.setGroupId(-1);
- failGroup.setGroupName("Ошибка");
- grList.add(failGroup);
- return grList;
- }
- }
- @RequestMapping(value = "/checkStudent", method = RequestMethod.GET)
- public ModelAndView checkStudent(@ModelAttribute("studentLogin") LoginUser student, RedirectAttributes redir){
- try {
- HashMap<Integer, StudentsEntity> studentAll = getStudentsMap();
- if (studentAll.containsKey(Integer.parseInt(student.getName()))) {
- if (studentAll.get(Integer.parseInt(student.getName())).getStPkNumber().equals(student.getPassword().trim())) {
- mvStudent.addObject("message", "");
- } else {
- mvStudent.addObject("message", "Неверный пароль");
- return mvStudent;
- }
- } else {
- mvStudent.addObject("message", "Неверный логин");
- return mvStudent;
- }
- StudentsEntity studentForRedir = studentAll.get(Integer.parseInt(student.getName()));
- redir.addFlashAttribute("Student", studentForRedir);
- return new ModelAndView("redirect:/PCabinStudentControl");
- } catch (Exception e) {
- return new ModelAndView("otherViews/errorView");
- }
- }
- @RequestMapping(value="/aboutUs")
- public ModelAndView aboutUs(){
- return new ModelAndView("otherViews/aboutPage");
- }
- @RequestMapping(value="/contacts")
- public ModelAndView contacts(){
- return new ModelAndView("otherViews/contactPage");
- }
- }
|