Example usage for com.liferay.portal.kernel.theme ThemeDisplay getUserId

List of usage examples for com.liferay.portal.kernel.theme ThemeDisplay getUserId

Introduction

In this page you can find the example usage for com.liferay.portal.kernel.theme ThemeDisplay getUserId.

Prototype

public long getUserId() 

Source Link

Document

Returns the ID of the user for which the current request is being handled.

Usage

From source file:it.infn.ct.indigo.futuregateway.portlet.action.FGAddInfraMVCActionCommand.java

License:Apache License

@Override
protected final void doProcessAction(final ActionRequest actionRequest, final ActionResponse actionResponse)
        throws Exception {

    ThemeDisplay themeDisplay = (ThemeDisplay) actionRequest.getAttribute(WebKeys.THEME_DISPLAY);

    String redirect = PortalUtil.escapeRedirect(ParamUtil.getString(actionRequest, "redirect"));
    String name = ParamUtil.getString(actionRequest, "fg-infra-name");
    String description = ParamUtil.getString(actionRequest, "fg-infra-description");
    boolean enabled = ParamUtil.getBoolean(actionRequest, "fg-infra-enabled");
    boolean virtual = ParamUtil.getBoolean(actionRequest, "fg-infra-virtual");
    String[] paramNames = ParamUtil.getStringValues(actionRequest, "fg-infra-parameter-name");
    String[] paramValues = ParamUtil.getStringValues(actionRequest, "fg-infra-parameter-value");
    String[] paramDescriptions = ParamUtil.getStringValues(actionRequest, "fg-infra-parameter-description");

    JSONObject jInfra = JSONFactoryUtil.createJSONObject();
    jInfra.put("name", name);
    jInfra.put("description", description);
    jInfra.put("enabled", enabled);
    jInfra.put("virtual", virtual);
    JSONArray jParams = JSONFactoryUtil.createJSONArray();
    for (int i = 0; i < paramNames.length; i++) {
        JSONObject jPar = JSONFactoryUtil.createJSONObject();
        jPar.put("name", paramNames[i]);
        jPar.put("value", paramValues[i]);
        jPar.put("description", paramDescriptions[i]);
        jParams.put(jPar);/*www  .  j  a  va2s  .c om*/
    }
    jInfra.put("parameters", jParams);

    try {
        fgServerManager.addResource(themeDisplay.getCompanyId(), FGServerConstants.INFRASTRUCTURE_COLLECTION,
                jInfra.toJSONString(), themeDisplay.getUserId());
        sendRedirect(actionRequest, actionResponse, redirect);
    } catch (IOException io) {
        log.error(io.getMessage());
        SessionErrors.add(actionRequest, io.getClass(), io);
        actionResponse.setRenderParameter("mvcPath", "/add_infrastructure.jsp");
    }
}

From source file:it.infn.ct.indigo.futuregateway.portlet.action.FGEditAppMVCActionCommand.java

License:Apache License

@Override
protected final void doProcessAction(final ActionRequest actionRequest, final ActionResponse actionResponse)
        throws Exception {

    ThemeDisplay themeDisplay = (ThemeDisplay) actionRequest.getAttribute(WebKeys.THEME_DISPLAY);

    String redirect = PortalUtil.escapeRedirect(ParamUtil.getString(actionRequest, "redirect"));
    String id = ParamUtil.getString(actionRequest, "fg-app-id");
    String name = ParamUtil.getString(actionRequest, "fg-app-name");
    String description = ParamUtil.getString(actionRequest, "fg-app-description");
    boolean enabled = ParamUtil.getBoolean(actionRequest, "fg-app-enabled");
    String outcome = ParamUtil.getString(actionRequest, "fg-app-outcome");
    String[] paramNames = ParamUtil.getStringValues(actionRequest, "fg-app-parameter-name");
    String[] paramValues = ParamUtil.getStringValues(actionRequest, "fg-app-parameter-value");
    String[] paramDescriptions = ParamUtil.getStringValues(actionRequest, "fg-app-parameter-description");
    String[] infras = ParamUtil.getStringValues(actionRequest, "fg-app-infrastructure");
    String[] fileUrls = ParamUtil.getStringValues(actionRequest, "fg-app-file-url");
    String[] fileOld = ParamUtil.getStringValues(actionRequest, "fg-app-file-old");
    UploadPortletRequest upr = PortalUtil.getUploadPortletRequest(actionRequest);
    InputStream[] files = upr.getFilesAsStream("fg-app-file-update", true);
    String[] fileNames = upr.getFileNames("fg-app-file-update");
    Map<String, InputStream> fileToTransfer = new HashMap<>();

    JSONObject jApp = JSONFactoryUtil.createJSONObject();
    if (!id.isEmpty()) {
        jApp.put("id", id);
    }/*from  w w w  .ja  v a  2s  . c  om*/
    jApp.put("name", name);
    jApp.put("description", description);
    jApp.put("enabled", enabled);
    jApp.put("outcome", outcome);

    JSONArray jParams = JSONFactoryUtil.createJSONArray();
    for (int i = 0; i < paramNames.length; i++) {
        if (Validator.isNotNull(paramNames[i])) {
            JSONObject jPar = JSONFactoryUtil.createJSONObject();
            jPar.put("name", paramNames[i]);
            jPar.put("value", paramValues[i]);
            if (paramDescriptions.length == paramNames.length) {
                jPar.put("description", paramDescriptions[i]);
            }
            jParams.put(jPar);
        }
    }
    jApp.put("parameters", jParams);

    JSONArray jInfras = JSONFactoryUtil.createJSONArray();
    for (String in : infras) {
        jInfras.put(in);
    }
    jApp.put("infrastructures", jInfras);

    if (Validator.isNotNull(fileNames)) {
        JSONArray jFiles = JSONFactoryUtil.createJSONArray();
        for (int i = 0; i < fileNames.length; i++) {
            if (Validator.isNotNull(fileNames[i])) {
                jFiles.put(fileNames[i]);
                fileToTransfer.put(fileNames[i], files[i]);
            } else {
                if (fileUrls.length == fileNames.length && Validator.isNotNull(fileUrls[i])) {
                    jFiles.put(fileUrls[i]);
                } else {
                    if (fileOld[i].compareTo("N/A") != 0) {
                        jFiles.put(fileOld[i]);
                    }
                }
            }
        }
        jApp.put("files", jFiles);
    }
    try {
        String resourceId = fgServerManager.addResource(themeDisplay.getCompanyId(),
                FGServerConstants.APPLICATION_COLLECTION, id, jApp.toJSONString(), themeDisplay.getUserId());
        if (!fileToTransfer.isEmpty()) {
            fgServerManager.submitFilesResource(themeDisplay.getCompanyId(),
                    FGServerConstants.APPLICATION_COLLECTION, resourceId, fileToTransfer,
                    themeDisplay.getUserId());
        }
        sendRedirect(actionRequest, actionResponse, redirect);
    } catch (IOException io) {
        log.error(io.getMessage());
        SessionErrors.add(actionRequest, io.getClass(), io);
        try {
            Map<String, String> mapInfras = fgServerManager.getInfrastructures(themeDisplay.getCompanyId(),
                    themeDisplay.getUserId());
            actionRequest.setAttribute(FGServerConstants.INFRASTRUCTURE_COLLECTION, mapInfras);
        } catch (Exception e) {
            if (e instanceof PrincipalException) {
                SessionErrors.add(actionRequest, e.getClass());
                actionResponse.setRenderParameter("mvcPath", "/error.jsp");
            } else {
                throw new PortletException(e);
            }
        }
        actionResponse.setRenderParameter("mvcPath", "/add_application.jsp");
    }
}

From source file:it.infn.ct.indigo.futuregateway.portlet.action.FGEditAppMVCRenderCommand.java

License:Apache License

@Override
public final String render(final RenderRequest renderRequest, final RenderResponse renderResponse)
        throws PortletException {
    String appId;//w  w  w .  j  av  a 2s .  c o  m

    ThemeDisplay themeDisplay = (ThemeDisplay) renderRequest.getAttribute(WebKeys.THEME_DISPLAY);
    try {
        Map<String, String> infras = fgServerManager.getInfrastructures(themeDisplay.getCompanyId(),
                themeDisplay.getUserId());
        if (infras.isEmpty()) {
            return "/application-no-infras.jsp";
        }
        renderRequest.setAttribute(FGServerConstants.INFRASTRUCTURE_COLLECTION, infras);
    } catch (Exception e) {
        if (e instanceof IOException) {
            SessionErrors.add(renderRequest, e.getClass());
            return "/error.jsp";
        } else {
            throw new PortletException(e);
        }
    }
    appId = ParamUtil.getString(renderRequest, FGServerConstants.VIEW_EDIT_RESOURCE_ID, null);
    if (appId != null) {
        try {
            String application = fgServerManager.getResource(PortalUtil.getCompanyId(renderRequest),
                    FGServerConstants.APPLICATION_COLLECTION, appId, PortalUtil.getUserId(renderRequest));
            JSONObject appJ = JSONFactoryUtil.createJSONObject(application);
            renderRequest.setAttribute("app_id", appJ.getString("id"));
            renderRequest.setAttribute("app_name", appJ.getString("name"));
            renderRequest.setAttribute("app_description", appJ.getString("description"));
            renderRequest.setAttribute("app_enabled", appJ.getBoolean("enabled"));
            renderRequest.setAttribute("app_outcome", appJ.getString("outcome"));
            Map<String, String> paramValues = new HashMap<>();
            Map<String, String> paramDescs = new HashMap<>();
            JSONArray params = appJ.getJSONArray("parameters");
            if (params != null) {
                for (int i = 0; i < params.length(); i++) {
                    JSONObject par = params.getJSONObject(i);
                    paramValues.put(par.getString("name"), par.getString("value"));
                    paramDescs.put(par.getString("name"), par.getString("description"));
                }
            }
            renderRequest.setAttribute("app_parameters_values", paramValues);
            renderRequest.setAttribute("app_parameters_descriptions", paramDescs);
            JSONArray files = appJ.getJSONArray("files");
            Set<String> fileNames = new HashSet<>();
            if (files != null) {
                for (int i = 0; i < files.length(); i++) {
                    fileNames.add(files.getJSONObject(i).getString("name"));
                }
            }
            renderRequest.setAttribute("app_file_names", fileNames);
            JSONArray infras = appJ.getJSONArray("infrastructures");
            Set<String> infraIds = new HashSet<>();
            if (infras != null) {
                for (int i = 0; i < infras.length(); i++) {
                    infraIds.add(infras.getString(i));
                }
            }
            renderRequest.setAttribute("app_infras", infraIds);
        } catch (Exception ex) {
            log.error(ex.getMessage());
            SessionErrors.add(renderRequest, FGServerManager.class);
        }
    }
    return "/add_application.jsp";
}

From source file:it.infn.ct.indigo.futuregateway.portlet.action.FGEditInfraMVCActionCommand.java

License:Apache License

@Override
protected final void doProcessAction(final ActionRequest actionRequest, final ActionResponse actionResponse)
        throws Exception {

    ThemeDisplay themeDisplay = (ThemeDisplay) actionRequest.getAttribute(WebKeys.THEME_DISPLAY);

    String redirect = PortalUtil.escapeRedirect(ParamUtil.getString(actionRequest, "redirect"));
    String id = ParamUtil.getString(actionRequest, "fg-infra-id");
    String name = ParamUtil.getString(actionRequest, "fg-infra-name");
    String description = ParamUtil.getString(actionRequest, "fg-infra-description");
    boolean enabled = ParamUtil.getBoolean(actionRequest, "fg-infra-enabled");
    boolean virtual = ParamUtil.getBoolean(actionRequest, "fg-infra-virtual");
    String[] paramNames = ParamUtil.getStringValues(actionRequest, "fg-infra-parameter-name");
    String[] paramValues = ParamUtil.getStringValues(actionRequest, "fg-infra-parameter-value");
    String[] paramDescriptions = ParamUtil.getStringValues(actionRequest, "fg-infra-parameter-description");

    JSONObject jInfra = JSONFactoryUtil.createJSONObject();
    if (!id.isEmpty()) {
        jInfra.put("id", id);
    }/*from  w ww. ja  v a2 s.c o  m*/
    jInfra.put("name", name);
    jInfra.put("description", description);
    jInfra.put("enabled", enabled);
    jInfra.put("virtual", virtual);
    JSONArray jParams = JSONFactoryUtil.createJSONArray();
    for (int i = 0; i < paramNames.length; i++) {
        JSONObject jPar = JSONFactoryUtil.createJSONObject();
        jPar.put("name", paramNames[i]);
        jPar.put("value", paramValues[i]);
        if (paramDescriptions.length == paramNames.length) {
            jPar.put("description", paramDescriptions[i]);
        }
        jParams.put(jPar);
    }
    jInfra.put("parameters", jParams);

    try {
        fgServerManager.addResource(themeDisplay.getCompanyId(), FGServerConstants.INFRASTRUCTURE_COLLECTION,
                id, jInfra.toJSONString(), themeDisplay.getUserId());
        sendRedirect(actionRequest, actionResponse, redirect);
    } catch (IOException io) {
        log.error(io.getMessage());
        SessionErrors.add(actionRequest, io.getClass(), io);
        actionResponse.setRenderParameter("mvcPath", "/add_infrastructure.jsp");
    }
}

From source file:se.vgregion.portal.innovationsslussen.createidea.controller.CreateIdeaViewController.java

License:Open Source License

/**
 * The default render method./*from  w  w  w  .j  a  va2 s . co  m*/
 *
 * @param request  the request
 * @param response the response
 * @param model    the model
 * @param idea     the idea
 * @param result   the binding results
 * @return the view
 */
@RenderMapping()
public String createIdea(RenderRequest request, RenderResponse response, final ModelMap model,
        @ModelAttribute Idea idea, BindingResult result) {

    ThemeDisplay themeDisplay = (ThemeDisplay) request.getAttribute(WebKeys.THEME_DISPLAY);
    long scopeGroupId = themeDisplay.getScopeGroupId();
    long userId = themeDisplay.getUserId();
    boolean isSignedIn = themeDisplay.isSignedIn();

    if (model.get("errors") == null) {

        // No idea exists
        idea = IdeaPortletUtil.getIdeaFromRequest(request);

        // Set dummy data for person
        if (idea.getIdeaPerson().getName().equals("")) {

            String screenName = "";
            String otherUserVgrId = (String) model.get("otherUserVgrId");
            if (otherUserVgrId != null) {
                if (!otherUserVgrId.equals("")) {
                    screenName = otherUserVgrId;

                }
            } else {
                screenName = themeDisplay.getUser().getScreenName();
            }

            IdeaPerson ideaPerson = idea.getIdeaPerson();
            AdPerson adCriteria = new AdPerson();
            adCriteria.setCn(screenName);
            List<AdPerson> findings = ldapService.find(adCriteria);
            if (findings.size() == 1) {
                AdPerson person = findings.get(0);
                ideaPerson.setEmail(person.getMail());
                ideaPerson.setJobPosition(person.getTitle());
                ideaPerson.setName(person.getDisplayName());
                ideaPerson.setAdministrativeUnit(person.getDivision());
                ideaPerson.setPhoneMobile(person.getMobile());
                ideaPerson.setPhone(person.getTelephoneNumber());
                ideaPerson.setVgrId(person.getCn());
                ideaPerson.setName(person.getDisplayName());
                model.addAttribute("otherUserVgrId", idea.getIdeaPerson().getVgrId());
            }

            populateValuesFromKiv(screenName, ideaPerson);
        }
    } else {
        // Copy binding error from save action
        result.addAllErrors((BindingResult) model.get("errors"));

        if (idea.getIdeaPerson() != null) {
            String vgrId = idea.getIdeaPerson().getVgrId();

            if (vgrId != null && !vgrId.isEmpty()) {
                model.addAttribute("otherUserVgrId", vgrId);
            }
        }
    }

    IdeaPermissionChecker ideaPermissionChecker = ideaPermissionCheckerService
            .getIdeaPermissionChecker(scopeGroupId, userId, idea);

    model.addAttribute("isSignedIn", isSignedIn);
    model.addAttribute("idea", idea);
    model.addAttribute("ideaClass", Idea.class);
    model.addAttribute("ideaPermissionChecker", ideaPermissionChecker);

    return "view";
}

From source file:se.vgregion.portal.innovationsslussen.createidea.controller.CreateIdeaViewController.java

License:Open Source License

/**
 * Method handling Action request./*from ww w  . j  a  va 2s  .  c  om*/
 *
 * @param request  the request
 * @param response the response
 * @param model    the model
 * @param idea     the idea
 * @param result   the binding results
 */
@ActionMapping("submitIdea")
public final void submitIdea(ActionRequest request, ActionResponse response, final ModelMap model,
        @ModelAttribute Idea idea, BindingResult result) {

    ThemeDisplay themeDisplay = (ThemeDisplay) request.getAttribute(WebKeys.THEME_DISPLAY);

    // todo auktoriseringskontroll?

    LOGGER.info("submitIdea");

    idea = IdeaPortletUtil.getIdeaFromRequest(request);
    idea.setCreated(new Date());
    idea.setHidden(false);

    ideaValidator.validate(idea, result);

    if (!result.hasErrors()) {

        try {
            String schemeServerNamePort = generateSchemeServerNamePort(request);

            //Populate with extra information about the user (from the ldap if at all).
            AdPerson criteria = new AdPerson();

            String otherUserVgrId = "";

            IdeaPermissionChecker ideaPermissionChecker = ideaPermissionCheckerService
                    .getIdeaPermissionChecker(themeDisplay.getScopeGroupId(), themeDisplay.getUserId(), idea);

            if (ideaPermissionChecker.isHasPermissionCreateIdeaForOtherUser()) {
                otherUserVgrId = idea.getIdeaPerson().getVgrId();
            }

            if (otherUserVgrId != null && !otherUserVgrId.isEmpty()) {
                criteria.setCn(otherUserVgrId);
                idea.setOriginalUserId(themeDisplay.getUserId());
            } else {
                criteria.setCn(themeDisplay.getUser().getScreenName());
            }

            List<AdPerson> findings = ldapService.find(criteria);
            if (findings.size() == 1) {

                AdPerson person = findings.get(0);
                IdeaPerson ip = idea.getIdeaPerson();

                ip.setName(person.getDisplayName());
                ip.setVgrId(person.getCn());
                ip.setAdministrativeUnit(person.getDivision());
                //ip.setBirthYear(person.getBirthYear());

                ip.setVgrStrukturPerson(person.getFormattedVgrStrukturPerson());
                //ip.setPhoneMobile(person.getMobile());
                //ip.setPhone(person.getTelephoneNumber());

                ip.setVgrId(person.getCn());
                ip.setName(person.getDisplayName());
            }

            populateValuesFromKiv(idea.getIdeaPerson().getVgrId(), idea.getIdeaPerson());

            idea = ideaService.addIdea(idea, schemeServerNamePort);

            response.setRenderParameter("ideaLink", idea.getUrlTitle());
            response.setRenderParameter("view", "confirmation");

        } catch (CreateIdeaException e) {

            // Add error - create failed

            result.addError(new ObjectError("", "Hoppsan nu gick ngot fel, vi fr inte kontakt med ett "
                    + "bakomliggande system. Var god frsk igen senare."));
            model.addAttribute("errors", result);
            copyRequestParameters(request, response);
            response.setRenderParameter("view", "view");
            e.printStackTrace();
        } catch (SystemException e) {
            result.addError(
                    new ObjectError("", "Hoppsan nu gick ngot fel, anvndaren som du frsker skapa "
                            + "idn fr finns inte eller gr inte att skapa."));
            e.printStackTrace();
        } catch (RuntimeException e) {
            SQLException nextException = Util.getNextExceptionFromLastCause(e);
            if (nextException != null) {
                LOGGER.error(nextException.getMessage(), nextException);
            }
            result.addError(new ObjectError("", "Hoppsan nu gick ngot fel, vi fr inte kontakt med ett "
                    + "bakomliggande system. Var god frsk igen senare."));
            model.addAttribute("errors", result);
            copyRequestParameters(request, response);
            response.setRenderParameter("view", "view");
            e.printStackTrace();
        } catch (PortalException e) {
            result.addError(
                    new ObjectError("", "Hoppsan nu gick ngot fel, anvndaren som du frsker skapa "
                            + "idn fr finns inte eller gr inte att skapa."));
            e.printStackTrace();
        }

    } else {
        model.addAttribute("otherUserVgrId", idea.getIdeaPerson().getVgrId());
        model.addAttribute("errors", result);
        model.addAttribute("idea", idea);

        //copyRequestParameters(request, response);
        response.setRenderParameter("view", "view");
    }
}

From source file:se.vgregion.portal.innovationsslussen.idea.controller.IdeaViewController.java

License:Open Source License

/**
 * The default render method.//from   ww  w  .j  av a  2s .  co  m
 *
 * @param request  the request
 * @param response the response
 * @param model    the model
 * @return the view
 */
@RenderMapping()
public String showIdea(RenderRequest request, RenderResponse response, final ModelMap model)
        throws PortalException, SystemException {

    ThemeDisplay themeDisplay = getThemeDisplay(request);
    String ideaType = ParamUtil.getString(request, "type", "public");

    String returnView = "view_public";

    //If a user trying to accsess the private part of an idea when not sign in.
    if (ideaType.equals("private") && !themeDisplay.isSignedIn()) {
        returnView = "idea_not_sign_in";
    } else {

        long scopeGroupId = themeDisplay.getScopeGroupId();
        long companyId = themeDisplay.getCompanyId();
        long userId = themeDisplay.getUserId();
        boolean isSignedIn = themeDisplay.isSignedIn();
        String urlTitle = ParamUtil.getString(request, "urlTitle", "");

        Layout ideaLayout = getFriendlyURLLayout(scopeGroupId, themeDisplay.getLayout().isPrivateLayout());
        long ideaPlid = ideaLayout.getPlid();
        model.addAttribute("ideaPlid", ideaPlid);

        int maxCommentCountDisplay = ParamUtil.getInteger(request, "maxCommentCountDisplay",
                defaultCommentCount);
        boolean moreComments = ParamUtil.getString(request, "moreComments") != null;
        if (moreComments) {
            maxCommentCountDisplay += defaultCommentCount;
        }

        if (!urlTitle.equals("")) {
            Idea idea = ideaService.findIdeaByUrlTitle(urlTitle);
            if (idea != null) {

                boolean isIdeaUserLiked = ideaService.getIsIdeaUserLiked(companyId, scopeGroupId, userId,
                        urlTitle);
                boolean isIdeaUserFavorite = ideaService.getIsIdeaUserFavorite(companyId, scopeGroupId, userId,
                        urlTitle);

                List<CommentItemVO> commentsList = null;

                if (ideaType.equals("private")) {
                    commentsList = ideaService.getPrivateComments(idea);
                } else {
                    commentsList = ideaService.getPublicComments(idea);
                }

                if (idea.getIdeaContentPrivate() != null) {
                    String ideTansportor = idea.getIdeaContentPrivate().getIdeTansportor();
                    if (ideTansportor != null && !ideTansportor.isEmpty()) {
                        model.addAttribute("tansportor", ideTansportor);
                    }
                }

                IdeaPermissionChecker ideaPermissionChecker = ideaPermissionCheckerService
                        .getIdeaPermissionChecker(scopeGroupId, userId, idea);

                model.addAttribute("commentCount", commentsList.size());
                commentsList = commentsList.subList(0, Math.min(maxCommentCountDisplay, commentsList.size()));

                idea = IdeaPortletUtil.replaceBreaklines(idea);

                model.addAttribute("idea", idea);
                model.addAttribute("commentsList", commentsList);
                model.addAttribute("commentsDelta", 1);
                model.addAttribute("isIdeaUserFavorite", isIdeaUserFavorite);
                model.addAttribute("isIdeaUserLiked", isIdeaUserLiked);
                model.addAttribute("urlTitle", urlTitle);
                model.addAttribute("userId", userId);

                model.addAttribute("isSignedIn", isSignedIn);
                model.addAttribute("ideaPermissionChecker", ideaPermissionChecker);

                model.addAttribute("ideaType", ideaType);

                model.addAttribute("maxCommentCountDisplay", maxCommentCountDisplay);
                model.addAttribute("defaultCommentCount", defaultCommentCount);

                model.addAttribute("ideaPortletName", IdeaPortletsConstants.PORTLET_NAME_IDEA_PORTLET);

                model.addAttribute("bariumUrl", bariumUrl);

                if (ideaType.equals("private") && (ideaPermissionChecker.getHasPermissionViewIdeaPrivate()
                        || idea.getUserId() == userId)) {
                    returnView = "view_private";
                }

                // If a user trying to access the public or private part of an idea that still is private.
                // The user dose not have premmisions and is not the creator of the idea.
                // Showing 404 view.
                if (!idea.isPublic() && !(ideaPermissionChecker.getHasPermissionViewIdeaPrivate()
                        || idea.getUserId() == userId)) {
                    HttpServletResponse httpServletResponse = PortalUtil.getHttpServletResponse(response);
                    httpServletResponse.setStatus(HttpServletResponse.SC_NOT_FOUND);
                    returnView = "idea_404";
                }
            } else {
                HttpServletResponse httpServletResponse = getHttpServletResponse(response);
                httpServletResponse.setStatus(HttpServletResponse.SC_NOT_FOUND);
                returnView = "idea_404";
            }
        }
    }
    return returnView;
}

From source file:se.vgregion.portal.innovationsslussen.idea.controller.IdeaViewController.java

License:Open Source License

/**
 * Method handling Action request./*from   w ww  .  jav  a  2  s .  c om*/
 *
 * @param request  the request
 * @param response the response
 * @param model    the model
 */
@ActionMapping(params = "action=addComment")
public final void addComment(ActionRequest request, ActionResponse response, final ModelMap model) {

    ThemeDisplay themeDisplay = getThemeDisplay(request);

    String urlTitle = ParamUtil.getString(request, "urlTitle", "");
    Idea idea = ideaService.findIdeaByUrlTitle(urlTitle);

    long userId = themeDisplay.getUserId();

    long groupId = themeDisplay.getScopeGroupId();

    IdeaContentType ideaContentType = IdeaContentType.valueOf(ParamUtil.getString(request, "ideaContentType"));
    String comment = ParamUtil.getString(request, "comment", "");

    if (!isAllowedToDoAction(request, idea, Action.ADD_COMMENT, ideaContentType)) {
        LOGGER.error("User is denied to add comment. idea.getId(): " + idea.getId() + ", idea.getUserId(): "
                + idea.getUserId() + ", idea.getTitle(): " + idea.getTitle());
        sendRedirectToContextRoot(response);
        return;
    }

    if (!comment.equals("")) {

        try {
            ServiceContext serviceContext = ServiceContextFactory.getInstance(Idea.class.getName(), request);
            //Add a mbMessage
            if (ideaContentType == IdeaContentType.IDEA_CONTENT_TYPE_PUBLIC) {
                ideaService.addMBMessage(idea, serviceContext, groupId, userId, comment,
                        idea.getIdeaContentPublic().getId());
                //Send email notification.
                ideaService.sendEmailNotification(idea, true);
            } else if (ideaContentType == IdeaContentType.IDEA_CONTENT_TYPE_PRIVATE) {
                ideaService.addMBMessage(idea, serviceContext, groupId, userId, comment,
                        idea.getIdeaContentPrivate().getId());

                Integer commentsCount = idea.getCommentsCount();
                commentsCount = commentsCount != null ? commentsCount
                        : ideaService.getPrivateCommentsCount(idea);
                idea.setCommentsCount(commentsCount + 1);
                idea.setLastPrivateCommentDate(new Date());
                idea = ideaService.save(idea);

                //Send email notification.
                ideaService.sendEmailNotification(idea, false);
            }
        } catch (PortalException e) {
            LOGGER.error(e.getMessage(), e);
        } catch (SystemException e) {
            LOGGER.error(e.getMessage(), e);
        }
    }

    if (ideaContentType == IdeaContentType.IDEA_CONTENT_TYPE_PRIVATE) {
        response.setRenderParameter("type", "private");
    }
    response.setRenderParameter("urlTitle", urlTitle);
}

From source file:se.vgregion.portal.innovationsslussen.idea.controller.IdeaViewController.java

License:Open Source License

private boolean isAllowedToDoAction(PortletRequest request, Idea idea, Action action,
        IdeaContentType ideaContentType) {
    // Initialize variables
    ThemeDisplay themeDisplay = getThemeDisplay(request);
    long userId = themeDisplay.getUserId();
    long groupId = themeDisplay.getScopeGroupId();

    IdeaPermissionChecker ideaPermissionChecker = ideaPermissionCheckerService.getIdeaPermissionChecker(groupId,
            userId, idea);//from www.ja v  a  2s .  co m

    // Then check for necessary permissions.
    boolean publicAndPublicPermission;
    boolean privateAndPrivatePermission;
    boolean isSignedIn;
    boolean publicPart;

    if (ideaContentType.equals(IdeaContentType.IDEA_CONTENT_TYPE_PUBLIC)) {
        publicPart = true;
    } else if (ideaContentType.equals(IdeaContentType.IDEA_CONTENT_TYPE_PRIVATE)) {
        publicPart = false;
    } else {
        throw new IllegalArgumentException("Unexpected IdeaContentType.");
    }

    switch (action) {
    case ADD_COMMENT:
        isSignedIn = themeDisplay.isSignedIn();
        if (!isSignedIn) {
            return false;
        }
        if (idea.getUserId() == userId) {
            return true;
        }
        publicAndPublicPermission = publicPart && ideaPermissionChecker.getHasPermissionAddCommentPublic();
        privateAndPrivatePermission = !publicPart && ideaPermissionChecker.getHasPermissionAddCommentPrivate();
        break;
    case UPLOAD_FILE:
        isSignedIn = themeDisplay.isSignedIn();
        if (!isSignedIn) {
            return false;
        }

        publicAndPublicPermission = publicPart && ideaPermissionChecker.getHasPermissionAddCommentPublic();
        privateAndPrivatePermission = !publicPart && ideaPermissionChecker.getHasPermissionAddCommentPrivate();
        break;
    case VIEW_IDEA:
        publicAndPublicPermission = publicPart && ideaPermissionChecker.getHasPermissionViewIdeaPublic();
        privateAndPrivatePermission = !publicPart && ideaPermissionChecker.getHasPermissionViewIdeaPrivate();
        break;
    default:
        throw new IllegalArgumentException("Unexpected action: " + action);
    }

    boolean necessaryPermissions = publicAndPublicPermission || privateAndPrivatePermission;

    return necessaryPermissions;
}

From source file:se.vgregion.portal.innovationsslussen.idea.controller.IdeaViewController.java

License:Open Source License

/**
 * Method handling Action request.//  w  w  w  .  jav a  2 s  .  c  o  m
 *
 * @param request  the request
 * @param response the response
 * @param model    the model
 */
@ActionMapping(params = "action=addFavorite")
public final void addFavorite(ActionRequest request, ActionResponse response, final ModelMap model) {

    LOGGER.info("addFavorite");

    ThemeDisplay themeDisplay = getThemeDisplay(request);
    long companyId = themeDisplay.getCompanyId();
    long groupId = themeDisplay.getScopeGroupId();
    long userId = themeDisplay.getUserId();

    IdeaContentType ideaContentType = IdeaContentType.valueOf(ParamUtil.getString(request, "ideaContentType"));
    String urlTitle = ParamUtil.getString(request, "urlTitle", "");

    if (themeDisplay.isSignedIn()) {
        ideaService.addFavorite(companyId, groupId, userId, urlTitle);
    }

    if (ideaContentType == IdeaContentType.IDEA_CONTENT_TYPE_PRIVATE) {
        response.setRenderParameter("type", "private");
    }

    response.setRenderParameter("urlTitle", urlTitle);
}