123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 |
- package controller;
- import EntitiesDao.UsersDao;
- import HibernateEntities.GroupsEntity;
- import HibernateEntities.StudentsEntity;
- import HibernateEntities.UsersEntity;
- import LoginEntities.LoginClient;
- import LoginEntities.LoginUser;
- import org.springframework.stereotype.Controller;
- import org.springframework.web.bind.annotation.*;
- import org.springframework.web.servlet.ModelAndView;
- import java.util.*;
- import static EntitiesDao.AdminDao.getAdminList;
- import static EntitiesDao.AdminDao.getAdminMap;
- import static EntitiesDao.ClientsDao.getClientList;
- import static EntitiesDao.ClientsDao.getClientMap;
- import static EntitiesDao.GroupDao.getGroupList;
- import static EntitiesDao.StudentDao.loadStudent;
- /**
- * Created by Кинетик on 28.12.2016.
- */
- @Controller
- public class controller {
- ModelAndView mvAdmin = new ModelAndView();
- ModelAndView mvClient = new ModelAndView();
- ModelAndView mvStudent = new ModelAndView();
- ModelAndView mvUsers = new ModelAndView();
- {
- //Блок инициализации всех view, которые используются при авторизации
- mvAdmin.setViewName("adminBar");
- mvClient.setViewName("ownerBar");
- mvStudent.setViewName("studentBar");
- mvUsers.setViewName("index");
- }
- //Мапит запрос на вход на сайт, возвращает страницу index и грузит в нее объект, чтобы записывать данные в него
- @RequestMapping(value = "/", method = RequestMethod.GET)
- public ModelAndView main() {
- mvUsers.addObject("userJSP", new LoginUser());
- return mvUsers;
- }
- //Метод осуществляет проверку первого уровня аутентификации. Комментарий про мапу аналогичен след методу - надо подумать+посовещаться
- @RequestMapping(value = "/check-user")
- public ModelAndView checkUser(@ModelAttribute("userJSP") LoginUser user) {
- HashMap<String, UsersEntity> userDict = UsersDao.getUserList();
- if(userDict.containsKey(user.getName())){
- if(userDict.get(user.getName()).getUserPassword().equals(user.getPassword())){
- if(Objects.equals(user.getName(), "модератор")){
- ArrayList<String> adminList = getAdminList();
- //Нет смысла создавать LoginAdmin - поля те же, что и у заказчика
- mvAdmin.addObject("adminLogin", new LoginClient());
- mvAdmin.addObject("adminList", adminList);
- mvUsers.addObject("message","");
- return mvAdmin;
- } else if(Objects.equals(user.getName(), "заказчик")){
- ArrayList<String> clientList = getClientList();
- mvClient.addObject("clientLogin", new LoginClient());
- mvClient.addObject("clientList", clientList);
- mvUsers.addObject("message","");
- return mvClient;
- } else {
- mvUsers.addObject("message","");
- List<GroupsEntity> groupList = getGroupList();
- mvStudent.addObject("groupList",groupList);
- mvStudent.addObject("studentLogin", new LoginClient());
- return mvStudent;
- }
- } else {
- mvUsers.addObject("message","Bad password");
- }
- } else {
- mvUsers.addObject("message", "Bad login");
- }
- return mvUsers;
- }
- @RequestMapping(value = "/checkClient")
- public ModelAndView checkClient(@ModelAttribute("clientLogin") LoginClient client){
- ModelAndView mv = new ModelAndView();
- /*За эту мапу вообще стыдно, в перспективе подумать как переписать - что быстрее запросить пользователя с логином из БД
- или вот так вытащить все. Пока думаю, что теряем в памяти - приобретаем в скорости и наоборот
- */
- HashMap<String, String> clientAll = getClientMap();
- if(clientAll.containsKey(client.getName())){
- if(clientAll.get(client.getName()).equals(client.getPassword())){
- mv.setViewName("ownerIn");
- mvClient.addObject("message","");
- } else {
- mvClient.addObject("message", "Bad password");
- return mvClient;
- }
- } else {
- mvClient.addObject("message", "Bad login");
- return mvClient;
- }
- return mv;
- }
- @RequestMapping(value = "/checkAdmin")
- public ModelAndView checkAdmin(@ModelAttribute("adminLogin") LoginClient admin){
- ModelAndView mv = new ModelAndView();
- HashMap<String, String> adminMap = getAdminMap();
- if(adminMap.containsKey(admin.getName())){
- if(adminMap.get(admin.getName()).equals(admin.getPassword())){
- mv.setViewName("adminIn");
- mvAdmin.addObject("message","");
- } else {
- mvAdmin.addObject("message", "Bad password");
- return mvAdmin;
- }
- } else {
- mvAdmin.addObject("message", "Bad login");
- return mvAdmin;
- }
- return mv;
- }
- @RequestMapping(value = "/loadStudents", headers = "Accept=*/*", method = RequestMethod.GET)
- public @ResponseBody
- List<StudentsEntity> loadStudents(@RequestParam(value = "groupId", required = true) Integer groupId) throws IllegalStateException {
- List<StudentsEntity> stList = loadStudent(groupId);
- return stList;
- }
- }
|