/* * To display the list of subordinates to delete and modify under a manager. */ @RequestMapping(value = "/modifyDeleteInternalUser", method = RequestMethod.GET) public ModelAndView get(HttpSession sessionID) throws Exception { // check for correct permissions. String userName = (String) sessionID.getAttribute("userName"); InternalUserDAO internalUserDAO = new InternalUserDAO(); InternalUser loggedInUser = internalUserDAO.findInternalUser(userName); if (loggedInUser.getDesignation().equalsIgnoreCase("employee") || loggedInUser.getDesignation().equalsIgnoreCase("sysadmin")) { return new ModelAndView("NotAuthorizedModDel", "message", null); } String departmentOfLoggedInUser = loggedInUser.getDepartment(); List<InternalUser> allSubordinates = internalUserDAO.findSubordinates(departmentOfLoggedInUser, userName); return new ModelAndView("ModifyDeleteSubordinates", "message", allSubordinates); }
@RequestMapping(value = "/ModifySubordinate", method = RequestMethod.POST) public ModelAndView post(@RequestParam("modUserame") String user, HttpSession sessionID) throws SQLException { String userName = user; InternalUserDAO internalUserDAO = new InternalUserDAO(); InternalUser selectedUser = internalUserDAO.findInternalUser(userName); sessionID.setAttribute("modUser", user); // Sid - Fetch column values which can be updated by the user String city = selectedUser.getCity(); String state = selectedUser.getState(); String zipcode = selectedUser.getZipcode(); String phoneNo = selectedUser.getPhoneNumber(); String email = selectedUser.getEmail(); String cellNo = selectedUser.getCellNumber(); String department = selectedUser.getDepartment(); String designation = selectedUser.getDesignation(); String address = selectedUser.getAddress1(); String address2 = selectedUser.getAddress2(); ModelMap editmodel = new ModelMap(); editmodel.addAttribute("city", city); editmodel.addAttribute("state", state); editmodel.addAttribute("zipcode", zipcode); editmodel.addAttribute("phoneNo", phoneNo); editmodel.addAttribute("email", email); editmodel.addAttribute("cell", cellNo); editmodel.addAttribute("addr1", address); editmodel.addAttribute("addr2", address2); editmodel.addAttribute("dept", department); editmodel.addAttribute("designation", designation); return new ModelAndView("ModifySubordinate", editmodel); }
@RequestMapping(value = "/DeleteSubordinate", method = RequestMethod.POST) public ModelAndView deleteSubordinates( @RequestParam("delUserame") String userToBeDeletedUserName, HttpSession sessionID) throws SQLException { InternalUserDAO internalUserDAO = new InternalUserDAO(); InternalUser userToBeDeleted = internalUserDAO.findInternalUser(userToBeDeletedUserName); if (userToBeDeleted.getFirstDelete() == 1) { internalUserDAO.delete(userToBeDeleted); InternalUserTransactionDAO internalUserTransactionDAO = new InternalUserTransactionDAO(); // Added a transaction to the Internal User Transaction Table. String operation = "Deleted"; InternalUserTransaction newTransaction = new InternalUserTransaction( (String) sessionID.getAttribute("userName"), operation, userToBeDeleted.getFirstName(), userToBeDeleted.getLastName()); internalUserTransactionDAO.persist(newTransaction); // delete from ToDo Table also. ToDoDAO toDoDAO = new ToDoDAO(); toDoDAO.delete( toDoDAO.findAParticularToDo( (String) sessionID.getAttribute("userName"), userToBeDeleted.getUserName(), "Delete")); return new ModelAndView( "DeleteSubordinate", "message", "The Employee has been deleted from the Records"); } else { userToBeDeleted.setFirstDelete(1); internalUserDAO.persist(userToBeDeleted); // String manager = userToBeDeleted.getManager(); InternalUser loggedInUser = internalUserDAO.findInternalUser((String) sessionID.getAttribute("userName")); String manager = loggedInUser.getManager(); if (loggedInUser.getDesignation().equalsIgnoreCase("corporate")) { // corporrate people have authority to directly delete a employee internalUserDAO.delete(userToBeDeleted); // Added a transaction to the Internal User Transaction Table. InternalUserTransactionDAO internalUserTransactionDAO = new InternalUserTransactionDAO(); String operation = "Deleted"; InternalUserTransaction newTransaction = new InternalUserTransaction( (String) sessionID.getAttribute("userName"), operation, userToBeDeleted.getFirstName(), userToBeDeleted.getLastName()); internalUserTransactionDAO.persist(newTransaction); return new ModelAndView( "DeleteSubordinate", "message", "The Employee has been deleted from the Records"); } else { // Have to Finalize based on what Manager Name is given.Right Now its on First Name basis /*String firstName = manager.substring(0, manager.indexOf(" ")); String lastName = manager.substring(manager.indexOf(" "));*/ InternalUser userNameManager = internalUserDAO.findInternalUserByName(manager /*, lastName*/); String actioneer = userNameManager.getUserName(); ToDo newEntry = new ToDo( actioneer, userToBeDeletedUserName, 0, "Delete", "Requesting second Authorization for Deletion"); ToDoDAO toDoDAO = new ToDoDAO(); toDoDAO.persist(newEntry); return new ModelAndView( "DeleteSubordinate", "message", "Notification has been send to Manager for approval for deletion"); } } }