package edu.asu.spring.quadriga.web.editing; import java.security.Principal; import java.util.List; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import edu.asu.spring.quadriga.domain.IUser; import edu.asu.spring.quadriga.domain.network.INetwork; import edu.asu.spring.quadriga.exceptions.QuadrigaStorageException; import edu.asu.spring.quadriga.service.IEditorManager; import edu.asu.spring.quadriga.service.IUserManager; import edu.asu.spring.quadriga.service.network.INetworkManager; import edu.asu.spring.quadriga.web.network.INetworkStatus; /** * This class will handle list dictionaries controller for the dictionary * * @author : Lohith Dwaraka * */ @Controller public class EditingAssignUserController { @Autowired private INetworkManager networkManager; @Autowired private IEditorManager editorManager; @Autowired private IUserManager userManager; private static final Logger logger = LoggerFactory.getLogger(EditingAssignUserController.class); /** * Assign a network to User * * @param networkId * @param model * @param principal * @return * @throws QuadrigaStorageException */ @RequestMapping(value = "auth/editing/assignuser/{networkId}", method = RequestMethod.GET) public String assignNetworkToUser(@PathVariable("networkId") String networkId, ModelMap model, Principal principal) throws QuadrigaStorageException { IUser user = userManager.getUser(principal.getName()); editorManager.assignNetworkToUser(networkId, user); editorManager.updateNetworkStatus(networkId, INetworkStatus.ASSIGNED); return "redirect:/auth/editing"; } /** * List networks assigned to a User * * @param model * @param principal * @return * @throws QuadrigaStorageException */ @RequestMapping(value = "auth/editing/completed", method = RequestMethod.GET) public String listNetworksAssignedToUser(ModelMap model, Principal principal) throws QuadrigaStorageException { IUser user = userManager.getUser(principal.getName()); List<INetwork> approvedNetworkList = editorManager.getApprovedNetworkOfUser(user); List<INetwork> rejectedNetworkList = editorManager.getRejectedNetworkOfUser(user); model.addAttribute("ApprovedNetworkList", approvedNetworkList); model.addAttribute("RejectedNetworkList", rejectedNetworkList); model.addAttribute("userId", user.getUserName()); return "auth/editing/approvedrejectednetworks"; } /** * List networks assigned to other Users * * @param model * @param principal * @return * @throws QuadrigaStorageException */ @RequestMapping(value = "auth/editing/assigned/others", method = RequestMethod.GET) public String listNetworksAssignedToOtherUser(ModelMap model, Principal principal) throws QuadrigaStorageException { IUser user = userManager.getUser(principal.getName()); List<INetwork> networkList = editorManager.getAssignedNetworkListOfOtherEditors(user); model.addAttribute("networkList", networkList); model.addAttribute("userId", user.getUserName()); return "auth/editing/networksAssginedToOtherUsers"; } /** * Approve a network * * @param networkId * @param model * @param principal * @return * @throws QuadrigaStorageException */ @RequestMapping(value = "auth/editing/approvenetwork/{networkid}", method = RequestMethod.GET) public String approveNetwork(@PathVariable("networkid") String networkId, ModelMap model, Principal principal) throws QuadrigaStorageException { editorManager.updateNetworkStatus(networkId, INetworkStatus.APPROVED); editorManager.updateAssignedNetworkStatus(networkId, INetworkStatus.APPROVED); return "redirect:/auth/editing"; } /** * Reject a submitted network * * @param networkId * @param model * @param principal * @return * @throws QuadrigaStorageException */ @RequestMapping(value = "auth/editing/rejectnetwork/{networkid}", method = RequestMethod.GET) public String rejectNetwork(@PathVariable("networkid") String networkId, ModelMap model, Principal principal) throws QuadrigaStorageException { editorManager.updateNetworkStatus(networkId, INetworkStatus.REJECTED); editorManager.updateAssignedNetworkStatus(networkId, INetworkStatus.REJECTED); return "redirect:/auth/editing"; } }