Example usage for org.springframework.web.bind.support SessionStatus setComplete

List of usage examples for org.springframework.web.bind.support SessionStatus setComplete

Introduction

In this page you can find the example usage for org.springframework.web.bind.support SessionStatus setComplete.

Prototype

void setComplete();

Source Link

Document

Mark the current handler's session processing as complete, allowing for cleanup of session attributes.

Usage

From source file:csns.web.controller.SiteBlockControllerS.java

@RequestMapping(value = "/site/{qtr}/{cc}-{sn}/block/addResource", method = RequestMethod.POST)
public String addResource(@ModelAttribute Item item, @ModelAttribute Resource resource,
        @RequestParam Long blockId,
        @RequestParam(value = "uploadedFile", required = false) MultipartFile uploadedFile,
        BindingResult bindingResult, SessionStatus sessionStatus) {
    resourceValidator.validate(resource, uploadedFile, bindingResult);
    if (bindingResult.hasErrors())
        return "site/block/addResource";

    User user = SecurityUtils.getUser();
    if (resource.getType() != ResourceType.NONE) {
        if (resource.getType() == ResourceType.FILE && uploadedFile != null && !uploadedFile.isEmpty())
            resource.setFile(fileIO.save(uploadedFile, user, true));
        item.getAdditionalResources().add(resource);
        item = itemDao.saveItem(item);// www .  j  a  v  a2  s. co  m
        logger.info(user.getUsername() + " added a resource to item " + item.getId() + " in block " + blockId);
    }
    sessionStatus.setComplete();

    return "redirect:editItem?blockId=" + blockId + "&itemId=" + item.getId();
}

From source file:nl.surfnet.coin.teams.control.DetailTeamController.java

@RequestMapping(value = "/doleaveteam.shtml", method = RequestMethod.POST)
public RedirectView leaveTeam(ModelMap modelMap, HttpServletRequest request,
        @ModelAttribute(TokenUtil.TOKENCHECK) String sessionToken, @RequestParam() String token,
        @RequestParam("team") String teamId, SessionStatus status) throws UnsupportedEncodingException {
    Person person = (Person) request.getSession().getAttribute(LoginInterceptor.PERSON_SESSION_KEY);
    String personId = person.getId();
    Team team = null;//ww  w  . ja va 2  s  .  c o m

    if (StringUtils.hasText(teamId)) {
        team = grouperTeamService.findTeamById(teamId);
    }

    if (team == null) {
        status.setComplete();
        modelMap.clear();
        throw new RuntimeException("Parameter error.");
    }

    Set<Member> admins = grouperTeamService.findAdmins(team);
    Member[] adminsArray = admins.toArray(new Member[admins.size()]);

    if (admins.size() == 1 && adminsArray[0].getId().equals(personId)) {
        status.setComplete();
        return new RedirectView("detailteam.shtml?team=" + URLEncoder.encode(teamId, UTF_8) + "&view="
                + ViewUtil.getView(request) + "&mes=" + ADMIN_LEAVE_TEAM, false, true, false);
    }

    // Leave the team
    grouperTeamService.deleteMember(teamId, personId);
    AuditLog.log("User {} left team {}", personId, teamId);

    status.setComplete();
    modelMap.clear();
    return new RedirectView("home.shtml?teams=my&view=" + ViewUtil.getView(request));
}

From source file:nl.surfnet.coin.teams.control.AddMemberController.java

@RequestMapping(value = "/doResendInvitation.shtml", method = RequestMethod.POST)
public String doResendInvitation(ModelMap modelMap, @ModelAttribute("invitation") Invitation invitation,
        BindingResult result, HttpServletRequest request,
        @ModelAttribute(TokenUtil.TOKENCHECK) String sessionToken, @RequestParam() String token,
        SessionStatus status) throws UnsupportedEncodingException {
    TokenUtil.checkTokens(sessionToken, token, status);
    Validator validator = new InvitationValidator();
    validator.validate(invitation, result);
    String messageText = request.getParameter("messageText");
    if (result.hasErrors()) {
        modelMap.addAttribute("messageText", messageText);
        return "resendinvitation";
    }//  w  ww.  ja va2s.  c o m
    Person person = (Person) request.getSession().getAttribute(LoginInterceptor.PERSON_SESSION_KEY);

    if (!controllerUtil.hasUserAdministrativePrivileges(person, invitation.getTeamId())) {
        status.setComplete();
        modelMap.clear();
        throw new RuntimeException("Requester (" + person.getId()
                + ") is not member or does not have the correct " + "privileges to resend an invitation");
    }
    InvitationMessage invitationMessage = new InvitationMessage(messageText, person.getId());
    invitation.addInvitationMessage(invitationMessage);
    invitation.setTimestamp(new Date().getTime());
    teamInviteService.saveOrUpdate(invitation);

    Locale locale = localeResolver.resolveLocale(request);
    String teamId = invitation.getTeamId();
    Team team = grouperTeamService.findTeamById(teamId);
    Object[] messageValuesSubject = { team.getName() };

    String subject = messageSource.getMessage(INVITE_SEND_INVITE_SUBJECT, messageValuesSubject, locale);
    sendInvitationByMail(invitation, subject, person, locale);
    status.setComplete();
    modelMap.clear();
    return "redirect:detailteam.shtml?team=" + URLEncoder.encode(teamId, UTF_8) + "&view="
            + ViewUtil.getView(request);
}

From source file:csns.web.controller.NewsControllerS.java

@RequestMapping(value = "/department/{dept}/news/post", method = RequestMethod.POST)
public String post(@ModelAttribute News news, @PathVariable String dept, @RequestParam Long forumId,
        @RequestParam(value = "file", required = false) MultipartFile[] uploadedFiles, BindingResult result,
        SessionStatus sessionStatus) {
    newsValidator.validate(news, result);
    if (result.hasErrors())
        return "news/post";

    Post post = news.getTopic().getFirstPost();
    User user = userDao.getUser(SecurityUtils.getUser().getId());
    if (uploadedFiles != null)
        post.getAttachments().addAll(fileIO.save(uploadedFiles, user, true));
    post.setAuthor(user);//w  w  w  .  j  av  a 2s.c  o  m
    post.setDate(new Date());

    Forum forum = forumDao.getForum(forumId);
    news.getTopic().setForum(forum);
    news = newsDao.saveNews(news);

    user.incrementNumOfForumPosts();
    forum.incrementNumOfTopics();
    forum.incrementNumOfPosts();
    forum.setLastPost(news.getTopic().getFirstPost());
    subscriptionDao.subscribe(news.getTopic(), user);

    logger.info(user.getUsername() + " posted news " + news.getId());

    sessionStatus.setComplete();
    return "redirect:/department/" + dept + "/news/current";
}

From source file:fi.koku.kks.controller.CreateCollectionController.java

@ActionMapping(params = "action=createNewVersion")
public void createVersion(PortletSession session, @ModelAttribute(value = "child") Person child,
        @RequestParam String id, Version version, BindingResult result, ActionResponse response,
        SessionStatus sessionStatus) {

    version.validate(version, result);//from w  ww.jav a2 s .co  m
    if (!result.hasErrors()) {
        LOG.debug("create new version");
        String collection = kksService.createKksCollectionVersion(version.getName(), id, child.getPic(),
                version.isClear(), Utils.getPicFromSession(session));

        if (collection == null) {
            result.reject("collection.create.failed");
            response.setRenderParameter("action", "showCollection");
            response.setRenderParameter("pic", child.getPic());
            response.setRenderParameter("collection", id);
        } else {
            version.setClear(false);
            response.setRenderParameter("action", "showCollection");
            response.setRenderParameter("pic", child.getPic());
            response.setRenderParameter("collection", collection);
            sessionStatus.setComplete();
        }
    } else {
        response.setRenderParameter("action", "showCollection");
        response.setRenderParameter("pic", child.getPic());
        response.setRenderParameter("collection", id);
    }
}

From source file:org.dspace.webmvc.controller.admin.CommunityController.java

@RequestMapping(params = "update", method = RequestMethod.POST)
public String processCommunityUpdate(@RequestAttribute Context context,
        @RequestParam(value = "communityID", required = false) Integer communityID,
        @RequestParam(value = "createNew", required = false) String createNew,
        @ModelAttribute("communityMetadataForm") @Valid CommunityMetadataForm communityMetadataForm,
        BindingResult bindingResult, SessionStatus status)
        throws SQLException, AuthorizeException, IOException {
    if (bindingResult.hasErrors()) {
        return "pages/admin/communityEdit";
    } else {//from  w  w w.ja  v a  2 s  . c  o  m
        Community community;
        if (createNew != null) {
            if (communityID == null) {
                //Create New
                community = Community.create(null, context);
            } else {
                //Subcommunity
                Community parentCommunity = Community.find(context, communityID);
                community = Community.create(parentCommunity, context);
            }
        } else {
            community = Community.find(context, communityID);
        }

        communityMetadataForm.setCommunityID(community.getID());
        communityMetadataForm.save(context);
        status.setComplete();

        return "redirect:/handle/" + community.getHandle();
    }
}

From source file:org.openmrs.module.metadatasharing.web.controller.ExportController.java

@RequestMapping(value = COMPLETE_PATH, method = RequestMethod.POST)
public String complete(@ModelAttribute(EXPORTER) PackageExporter exporter, Errors errors,
        @ModelAttribute(PACKAGE_ITEMS) PackageItems packageItems, Model model, SessionStatus session) {
    if (packageItems.getItems().get("Concept") != null) {
        if (Context.getService(MetadataMappingService.class).isAddLocalMappingOnExport()
                && !Context.getService(MetadataMappingService.class).isLocalSourceConfigured()) {
            errors.rejectValue("package", "metadatasharing.error.conceptSource.notConfigured");
            return EDIT_PATH;
        }//from w  w  w .  j ava2  s  .co m
    }

    for (Set<Item> items : packageItems.getItems().values()) {
        for (Item item : items) {
            exporter.addItem(item);
        }
    }

    Task task = exporter.schedulePackageExport();

    session.setComplete();

    model.addAttribute("uuid", task.getUuid());
    return WebUtils.redirect(TaskController.DETAILS_PATH);
}

From source file:nl.surfnet.coin.teams.control.DetailTeamController.java

@RequestMapping(value = "/doaddremoverole.shtml", method = RequestMethod.POST)
public RedirectView addOrRemoveRole(ModelMap modelMap, HttpServletRequest request,
        @ModelAttribute(TokenUtil.TOKENCHECK) String sessionToken, @RequestParam() String token,
        SessionStatus status) throws IOException, JSONException {
    TokenUtil.checkTokens(sessionToken, token, status);
    String teamId = request.getParameter("teamId");
    String memberId = request.getParameter("memberId");
    String roleString = request.getParameter("roleId");
    int offset = getOffset(request);
    String action = request.getParameter("doAction");
    if (!StringUtils.hasText(teamId)) {
        status.setComplete();
        modelMap.clear();/*from w ww.j av a  2  s  . c  om*/
        return new RedirectView("home.shtml?teams=my" + "&view=" + ViewUtil.getView(request));
    }
    if (!StringUtils.hasText(memberId) || !StringUtils.hasText(roleString) || !validAction(action)) {
        status.setComplete();
        modelMap.clear();
        return new RedirectView("detailteam.shtml?team=" + URLEncoder.encode(teamId, UTF_8) + "&view="
                + ViewUtil.getView(request) + "&mes=no.role.action" + "&offset=" + offset);
    }
    Person person = (Person) request.getSession().getAttribute(LoginInterceptor.PERSON_SESSION_KEY);

    String message;
    if (action.equalsIgnoreCase("remove")) {
        Team team = grouperTeamService.findTeamById(teamId);
        // is the team null? return error
        if (team == null) {
            status.setComplete();
            modelMap.clear();
            return new RedirectView("home.shtml?teams=my" + "&view=" + ViewUtil.getView(request));
        }
        message = removeRole(teamId, memberId, roleString, team, person.getId());
    } else {
        message = addRole(teamId, memberId, roleString, person.getId());
    }

    status.setComplete();
    modelMap.clear();
    return new RedirectView("detailteam.shtml?team=" + URLEncoder.encode(teamId, UTF_8) + "&view="
            + ViewUtil.getView(request) + "&mes=" + message + "&offset=" + offset);
}

From source file:nl.surfnet.coin.teams.control.DetailTeamController.java

@RequestMapping(value = "/dodeletemember.shtml", method = RequestMethod.GET)
public RedirectView deleteMember(ModelMap modelMap, HttpServletRequest request,
        @ModelAttribute(TokenUtil.TOKENCHECK) String sessionToken, @RequestParam() String token,
        @RequestParam("team") String teamId, SessionStatus status) throws UnsupportedEncodingException {
    TokenUtil.checkTokens(sessionToken, token, status);
    String personId = URLDecoder.decode(request.getParameter(MEMBER_PARAM), UTF_8);
    Person ownerPerson = (Person) request.getSession().getAttribute(LoginInterceptor.PERSON_SESSION_KEY);
    String ownerId = ownerPerson.getId();

    if (!StringUtils.hasText(teamId) || !StringUtils.hasText(personId)) {
        status.setComplete();
        modelMap.clear();//  ww  w. j a va2 s .  c  o  m
        throw new RuntimeException("Parameter error.");
    }

    // fetch the logged in member
    Member owner = grouperTeamService.findMember(teamId, ownerId);
    Member member = grouperTeamService.findMember(teamId, personId);

    // Check whether the owner is admin and thus is granted to delete the
    // member.
    // Check whether the member that should be deleted is the logged in user.
    // This should not be possible, a logged in user should click the resign
    // from team button.
    if (owner.getRoles().contains(Role.Admin) && !personId.equals(ownerId)) {

        // Delete the member
        grouperTeamService.deleteMember(teamId, personId);
        AuditLog.log("Admin user {} deleted user {} from team {}", ownerId, personId, teamId);

        status.setComplete();
        modelMap.clear();
        return new RedirectView("detailteam.shtml?team=" + URLEncoder.encode(teamId, UTF_8) + "&view="
                + ViewUtil.getView(request));
        // if the owner is manager and the member is not an admin he can delete
        // the member
    } else if (owner.getRoles().contains(Role.Manager) && !member.getRoles().contains(Role.Admin)
            && !personId.equals(ownerId)) {
        // Delete the member
        grouperTeamService.deleteMember(teamId, personId);
        AuditLog.log("Manager user {} deleted user {} from team {}", ownerId, personId, teamId);

        status.setComplete();
        modelMap.clear();
        return new RedirectView("detailteam.shtml?team=" + URLEncoder.encode(teamId, UTF_8) + "&view="
                + ViewUtil.getView(request));
    }

    status.setComplete();
    modelMap.clear();
    return new RedirectView("detailteam.shtml?team=" + URLEncoder.encode(teamId, UTF_8) + "&mes="
            + NOT_AUTHORIZED_DELETE_MEMBER + "&view=" + ViewUtil.getView(request));
}

From source file:net.neurowork.cenatic.centraldir.web.indicators.IndicadorController.java

@RequestMapping("/indicators/{indicatorId}/png")
public void pngIndicatorHandler(@PathVariable("indicatorId") int indicatorId, OutputStream stream,
        SessionStatus status, HttpSession session) throws IOException {
    if (logger.isTraceEnabled())
        logger.trace("Showing PNG of Indicator with Id: " + indicatorId);
    Indicator indicador;/* w  w w . j av  a  2  s  .co  m*/
    try {
        indicador = indicatorService.loadIndicator(indicatorId);

        OrganizacionFilter filter = (OrganizacionFilter) session.getAttribute(IND_FILTER);

        if (filter != null) {
            logger.info("Filtering: " + filter.toString());
        }

        indicador.setFilter(filter);

        Dataset dataset = indicatorService.buildGraphDataset(indicador);
        JFreeChart chart = ChartsUtil.generateChart(indicador, dataset);
        if (chart != null) {
            ChartUtilities.writeChartAsPNG(stream, chart, indicador.getWidth(), indicador.getHeight());
        }
        status.setComplete();
    } catch (ServiceException e) {
        logger.error(e.getMessage());
    }
}