Example usage for com.liferay.portal.kernel.util ParamUtil get

List of usage examples for com.liferay.portal.kernel.util ParamUtil get

Introduction

In this page you can find the example usage for com.liferay.portal.kernel.util ParamUtil get.

Prototype

public static String get(ServiceContext serviceContext, String param, String defaultValue) 

Source Link

Document

Returns the service context parameter value as a String.

Usage

From source file:blade.portlet.actioncommand.GreeterActionCommand.java

License:Apache License

private void _handleActionCommand(ActionRequest actionRequest, ActionResponse actionResponse) {

    String name = ParamUtil.get(actionRequest, "name", StringPool.BLANK);

    _log.info("Hello " + name);

    String greetingMessage = "Hello " + name + "! Welcome to OSGi";

    actionRequest.setAttribute("GREETER_MESSAGE", greetingMessage);

    SessionMessages.add(actionRequest, "greeting_message", greetingMessage);
}

From source file:com.evozon.evoportal.myaccount.builder.RequestAccountModelHolderBuilder.java

public AccountModelHolderBuilder buildDetailsModel() {
    DetailsModel detailsModel = new DetailsModel();

    detailsModel.setScreenName(ParamUtil.get(request, "screenName", StringPool.BLANK));
    detailsModel.setEmailAddress(ParamUtil.get(request, "emailAddress", StringPool.BLANK));
    detailsModel.setFirstName(ParamUtil.get(request, "firstName", StringPool.BLANK));
    detailsModel.setLastName(ParamUtil.get(request, "lastName", StringPool.BLANK));
    detailsModel.setMale(ParamUtil.getBoolean(request, "male", Boolean.FALSE));
    detailsModel.setBuilding(ParamUtil.get(request, "ExpandoAttribute--Building--", StringPool.BLANK));
    detailsModel.setJobTitle(ParamUtil.get(request, "jobTitle", StringPool.BLANK));
    detailsModel.setFunctieCIM(ParamUtil.get(request, "ExpandoAttribute--Functie CIM--", StringPool.BLANK));
    detailsModel.setCnp(ParamUtil.get(request, "userCNP", StringPool.BLANK));
    detailsModel.setLicensePlate(ParamUtil.get(request, "ExpandoAttribute--License Plate--", StringPool.BLANK));
    detailsModel.setBirthdayDate(getDateFromRequest("birthday"));
    detailsModel.setBirthdayHidden(ParamUtil.getBoolean(request, "hideBirthday", Boolean.FALSE));
    detailsModel.setSkype(ParamUtil.get(request, "skypeSn", StringPool.BLANK));
    detailsModel.setPhoneNumber(ParamUtil.get(request, "phoneNumber", StringPool.BLANK));
    detailsModel.setPhoneNumberHidden(ParamUtil.getBoolean(request, "hidePhones", Boolean.FALSE));
    detailsModel.setMarried(ParamUtil.getBoolean(request, "ExpandoAttribute--Married--", Boolean.FALSE));
    detailsModel.setStudent(ParamUtil.getBoolean(request, "isStudent", Boolean.FALSE));
    detailsModel.setUniversity(ParamUtil.get(request, "ExpandoAttribute--University--", StringPool.BLANK));
    detailsModel.setFaculty(ParamUtil.get(request, "ExpandoAttribute--Faculty--", StringPool.BLANK));
    detailsModel.setDiplomaTitle(/*from w w w.  ja  v a  2  s . c  om*/
            ParamUtil.get(request, "ExpandoAttribute--Diploma title (In progress)--", StringPool.BLANK));
    detailsModel.setAdditionalEmailAddress(ParamUtil.get(request, "additionalEmailAddress", StringPool.BLANK));

    this.accountModelHolder.setDetailsModel(detailsModel);
    return this;
}

From source file:com.evozon.evoportal.my_account.util.MyAccountRequestUtil.java

public static DetailsModel getDetailsModelFromRequest(ActionRequest actionRequest) {
    DetailsModel detailsModel = new DetailsModel();

    detailsModel.setScreenName(ParamUtil.get(actionRequest, "screenName", StringPool.BLANK));
    detailsModel.setEmailAddress(ParamUtil.get(actionRequest, "emailAddress", StringPool.BLANK));
    detailsModel.setFirstName(ParamUtil.get(actionRequest, "firstName", StringPool.BLANK));
    detailsModel.setLastName(ParamUtil.get(actionRequest, "lastName", StringPool.BLANK));
    detailsModel.setMale(ParamUtil.getBoolean(actionRequest, "male", Boolean.FALSE));
    detailsModel.setBuilding(ParamUtil.get(actionRequest, "ExpandoAttribute--Building--", StringPool.BLANK));
    detailsModel.setJobTitle(ParamUtil.get(actionRequest, "jobTitle", StringPool.BLANK));
    detailsModel//from w  w w  .  j a  v  a 2  s .  co  m
            .setFunctieCIM(ParamUtil.get(actionRequest, "ExpandoAttribute--Functie CIM--", StringPool.BLANK));
    detailsModel.setCnp(ParamUtil.get(actionRequest, "userCNP", StringPool.BLANK));
    detailsModel.setLicensePlate(
            ParamUtil.get(actionRequest, "ExpandoAttribute--License Plate--", StringPool.BLANK));
    detailsModel.setBirthdayDate(getBirthdayFromRequest(actionRequest));
    detailsModel.setBirthdayHidden(ParamUtil.getBoolean(actionRequest, "hideBirthday", Boolean.FALSE));
    detailsModel.setSkype(ParamUtil.get(actionRequest, "skypeSn", StringPool.BLANK));
    detailsModel.setPhoneNumber(ParamUtil.get(actionRequest, "phoneNumber", StringPool.BLANK));
    detailsModel.setPhoneNumberHidden(ParamUtil.getBoolean(actionRequest, "hidePhones", Boolean.FALSE));
    detailsModel.setMarried(ParamUtil.getBoolean(actionRequest, "ExpandoAttribute--Married--", Boolean.FALSE));
    detailsModel.setStudent(ParamUtil.getBoolean(actionRequest, "isStudent", Boolean.FALSE));
    detailsModel
            .setUniversity(ParamUtil.get(actionRequest, "ExpandoAttribute--University--", StringPool.BLANK));
    detailsModel.setFaculty(ParamUtil.get(actionRequest, "ExpandoAttribute--Faculty--", StringPool.BLANK));
    detailsModel.setDiplomaTitle(
            ParamUtil.get(actionRequest, "ExpandoAttribute--Diploma title (In progress)--", StringPool.BLANK));
    detailsModel.setAdditionalEmailAddress(
            ParamUtil.get(actionRequest, "additionalEmailAddress", StringPool.BLANK));
    detailsModel.setOfficialName(ParamUtil.getString(actionRequest,
            MyAccountConstants.EXPANDO_OFFICIAL_NAME_ATTRIBUTE, StringPool.BLANK));

    return detailsModel;
}

From source file:com.liferay.blade.samples.portlet.actioncommand.GreeterActionCommand.java

License:Apache License

private void _handleActionCommand(ActionRequest actionRequest) {
    String name = ParamUtil.get(actionRequest, "name", StringPool.BLANK);

    if (_log.isInfoEnabled()) {
        _log.info("Hello " + name);
    }//from   ww  w  . ja v  a 2s . co m

    String greetingMessage = "Hello " + name + "! Welcome to OSGi";

    actionRequest.setAttribute("GREETER_MESSAGE", greetingMessage);

    SessionMessages.add(actionRequest, "greetingMessage", greetingMessage);
}

From source file:com.liferay.journal.web.internal.portlet.action.ActionUtil.java

License:Open Source License

protected static String getLanguageId(RenderRequest renderRequest, long groupId, String articleId,
        double sourceVersion, double targetVersion) throws Exception {

    JournalArticle sourceArticle = JournalArticleLocalServiceUtil.fetchArticle(groupId, articleId,
            sourceVersion);//from w w  w. j a v a  2  s  .c  om

    JournalArticle targetArticle = JournalArticleLocalServiceUtil.fetchArticle(groupId, articleId,
            targetVersion);

    Set<Locale> locales = new HashSet<>();

    for (String locale : sourceArticle.getAvailableLanguageIds()) {
        locales.add(LocaleUtil.fromLanguageId(locale));
    }

    for (String locale : targetArticle.getAvailableLanguageIds()) {
        locales.add(LocaleUtil.fromLanguageId(locale));
    }

    String languageId = ParamUtil.get(renderRequest, "languageId", targetArticle.getDefaultLanguageId());

    Locale locale = LocaleUtil.fromLanguageId(languageId);

    if (!locales.contains(locale)) {
        languageId = targetArticle.getDefaultLanguageId();
    }

    renderRequest.setAttribute(WebKeys.AVAILABLE_LOCALES, locales);
    renderRequest.setAttribute(WebKeys.LANGUAGE_ID, languageId);

    return languageId;
}

From source file:com.liferay.lms.servlet.SCORMFileServerServlet.java

License:Open Source License

/**
 * Procesa los metodos HTTP GET y POST.<br>
 * Busca en la ruta que se le ha pedido el comienzo del directorio
 * "contenidos" y sirve el fichero.//from   w w w  . ja v a2  s.  co  m
 */
protected void processRequest(HttpServletRequest request, HttpServletResponse response, boolean content)
        throws ServletException, java.io.IOException {
    String mime_type;
    String charset;
    String patharchivo;
    String uri;

    try {
        User user = PortalUtil.getUser(request);

        if (user == null) {
            String userId = null;
            String companyId = null;
            Cookie[] cookies = ((HttpServletRequest) request).getCookies();
            if (Validator.isNotNull(cookies)) {
                for (Cookie c : cookies) {
                    if ("COMPANY_ID".equals(c.getName())) {
                        companyId = c.getValue();
                    } else if ("ID".equals(c.getName())) {
                        userId = hexStringToStringByAscii(c.getValue());
                    }
                }
            }

            if (userId != null && companyId != null) {
                try {
                    Company company = CompanyLocalServiceUtil.getCompany(Long.parseLong(companyId));
                    Key key = company.getKeyObj();

                    String userIdPlain = Encryptor.decrypt(key, userId);

                    user = UserLocalServiceUtil.getUser(Long.valueOf(userIdPlain));

                    // Now you can set the liferayUser into a thread local
                    // for later use or
                    // something like that.

                } catch (Exception pException) {
                    throw new RuntimeException(pException);
                }
            }
        }

        String rutaDatos = SCORMContentLocalServiceUtil.getBaseDir();

        // Se comprueba que el usuario tiene permisos para acceder.
        // Damos acceso a todo el mundo al directorio "personalizacion",
        // para permitir mostrar a todos la pantalla de identificacion.
        uri = URLDecoder.decode(request.getRequestURI(), "UTF-8");
        uri = uri.substring(uri.indexOf("scorm/") + "scorm/".length());
        patharchivo = rutaDatos + "/" + uri;

        String[] params = uri.split("/");
        long groupId = GetterUtil.getLong(params[1]);
        String uuid = params[2];
        SCORMContent scormContent = SCORMContentLocalServiceUtil.getSCORMContentByUuidAndGroupId(uuid, groupId);

        boolean allowed = false;
        if (user == null) {
            user = UserLocalServiceUtil.getDefaultUser(PortalUtil.getDefaultCompanyId());
        }
        PermissionChecker pc = PermissionCheckerFactoryUtil.create(user);
        allowed = pc.hasPermission(groupId, SCORMContent.class.getName(), scormContent.getScormId(),
                ActionKeys.VIEW);
        if (!allowed) {
            AssetEntry scormAsset = AssetEntryLocalServiceUtil.getEntry(SCORMContent.class.getName(),
                    scormContent.getPrimaryKey());
            long scormAssetId = scormAsset.getEntryId();
            int typeId = new Long((new SCORMLearningActivityType()).getTypeId()).intValue();
            long[] groupIds = user.getGroupIds();
            for (long gId : groupIds) {
                List<LearningActivity> acts = LearningActivityLocalServiceUtil
                        .getLearningActivitiesOfGroupAndType(gId, typeId);
                for (LearningActivity act : acts) {
                    String entryId = LearningActivityLocalServiceUtil.getExtraContentValue(act.getActId(),
                            "assetEntry");
                    if (Validator.isNotNull(entryId) && Long.valueOf(entryId) == scormAssetId) {
                        allowed = pc.hasPermission(gId, LearningActivity.class.getName(), act.getActId(),
                                ActionKeys.VIEW);
                        if (allowed) {
                            break;
                        }
                    }
                }
                if (allowed) {
                    break;
                }
            }

        }
        if (allowed) {

            File archivo = new File(patharchivo);

            // Si el archivo existe y no es un directorio se sirve. Si no,
            // no se hace nada.
            if (archivo.exists() && archivo.isFile()) {

                // El content type siempre antes del printwriter
                mime_type = MimeTypesUtil.getContentType(archivo);
                charset = "";
                if (archivo.getName().toLowerCase().endsWith(".html")
                        || archivo.getName().toLowerCase().endsWith(".htm")) {
                    mime_type = "text/html";
                    if (isISO(FileUtils.readFileToString(archivo))) {
                        charset = "ISO-8859-1";
                    }
                }
                if (archivo.getName().toLowerCase().endsWith(".swf")) {
                    mime_type = "application/x-shockwave-flash";
                }
                if (archivo.getName().toLowerCase().endsWith(".mp4")) {
                    mime_type = "video/mp4";
                }
                if (archivo.getName().toLowerCase().endsWith(".flv")) {
                    mime_type = "video/x-flv";
                }
                response.setContentType(mime_type);
                if (Validator.isNotNull(charset)) {
                    response.setCharacterEncoding(charset);

                }
                response.addHeader("Content-Type",
                        mime_type + (Validator.isNotNull(charset) ? "; " + charset : ""));
                /*if (archivo.getName().toLowerCase().endsWith(".swf")
                      || archivo.getName().toLowerCase().endsWith(".flv")) {
                   response.addHeader("Content-Length",
                String.valueOf(archivo.length()));
                }
                */
                if (archivo.getName().toLowerCase().endsWith("imsmanifest.xml")) {
                    FileInputStream fis = new FileInputStream(patharchivo);

                    String sco = ParamUtil.get(request, "scoshow", "");
                    Document manifest = SAXReaderUtil.read(fis);
                    if (sco.length() > 0) {

                        Element organizatEl = manifest.getRootElement().element("organizations")
                                .element("organization");
                        Element selectedItem = selectItem(organizatEl, sco);
                        if (selectedItem != null) {
                            selectedItem.detach();
                            java.util.List<Element> items = organizatEl.elements("item");
                            for (Element item : items) {

                                organizatEl.remove(item);
                            }
                            organizatEl.add(selectedItem);
                        }
                    }
                    //clean unused resources.
                    Element resources = manifest.getRootElement().element("resources");
                    java.util.List<Element> theResources = resources.elements("resource");
                    Element organizatEl = manifest.getRootElement().element("organizations")
                            .element("organization");
                    java.util.List<String> identifiers = getIdentifierRefs(organizatEl);
                    for (Element resource : theResources) {
                        String identifier = resource.attributeValue("identifier");
                        if (!identifiers.contains(identifier)) {
                            resources.remove(resource);
                        }
                    }
                    response.getWriter().print(manifest.asXML());
                    fis.close();
                    return;

                }

                if (mime_type.startsWith("text") || mime_type.endsWith("javascript")
                        || mime_type.equals("application/xml")) {

                    java.io.OutputStream out = response.getOutputStream();
                    FileInputStream fis = new FileInputStream(patharchivo);

                    byte[] buffer = new byte[512];
                    int i = 0;

                    while (fis.available() > 0) {
                        i = fis.read(buffer);
                        if (i == 512)
                            out.write(buffer);
                        else
                            out.write(buffer, 0, i);

                    }

                    fis.close();
                    out.flush();
                    out.close();
                    return;
                }
                //If not manifest
                String fileName = archivo.getName();
                long length = archivo.length();
                long lastModified = archivo.lastModified();
                String eTag = fileName + "_" + length + "_" + lastModified;
                long expires = System.currentTimeMillis() + DEFAULT_EXPIRE_TIME;
                String ifNoneMatch = request.getHeader("If-None-Match");
                if (ifNoneMatch != null && matches(ifNoneMatch, eTag)) {
                    response.setStatus(HttpServletResponse.SC_NOT_MODIFIED);
                    response.setHeader("ETag", eTag); // Required in 304.
                    response.setDateHeader("Expires", expires); // Postpone cache with 1 week.
                    return;
                }
                long ifModifiedSince = request.getDateHeader("If-Modified-Since");
                if (ifNoneMatch == null && ifModifiedSince != -1 && ifModifiedSince + 1000 > lastModified) {
                    response.setStatus(HttpServletResponse.SC_NOT_MODIFIED);
                    response.setHeader("ETag", eTag); // Required in 304.
                    response.setDateHeader("Expires", expires); // Postpone cache with 1 week.
                    return;
                }

                // If-Match header should contain "*" or ETag. If not, then return 412.
                String ifMatch = request.getHeader("If-Match");
                if (ifMatch != null && !matches(ifMatch, eTag)) {
                    response.sendError(HttpServletResponse.SC_PRECONDITION_FAILED);
                    return;
                }

                // If-Unmodified-Since header should be greater than LastModified. If not, then return 412.
                long ifUnmodifiedSince = request.getDateHeader("If-Unmodified-Since");
                if (ifUnmodifiedSince != -1 && ifUnmodifiedSince + 1000 <= lastModified) {
                    response.sendError(HttpServletResponse.SC_PRECONDITION_FAILED);
                    return;
                }

                // Validate and process range -------------------------------------------------------------

                // Prepare some variables. The full Range represents the complete file.
                Range full = new Range(0, length - 1, length);
                List<Range> ranges = new ArrayList<Range>();

                // Validate and process Range and If-Range headers.
                String range = request.getHeader("Range");
                if (range != null) {

                    // Range header should match format "bytes=n-n,n-n,n-n...". If not, then return 416.
                    if (!range.matches("^bytes=\\d*-\\d*(,\\d*-\\d*)*$")) {
                        response.setHeader("Content-Range", "bytes */" + length); // Required in 416.
                        response.sendError(HttpServletResponse.SC_REQUESTED_RANGE_NOT_SATISFIABLE);
                        return;
                    }

                    // If-Range header should either match ETag or be greater then LastModified. If not,
                    // then return full file.
                    String ifRange = request.getHeader("If-Range");
                    if (ifRange != null && !ifRange.equals(eTag)) {
                        try {
                            long ifRangeTime = request.getDateHeader("If-Range"); // Throws IAE if invalid.
                            if (ifRangeTime != -1 && ifRangeTime + 1000 < lastModified) {
                                ranges.add(full);
                            }
                        } catch (IllegalArgumentException ignore) {
                            ranges.add(full);
                        }
                    }

                    // If any valid If-Range header, then process each part of byte range.
                    if (ranges.isEmpty()) {
                        for (String part : range.substring(6).split(",")) {
                            // Assuming a file with length of 100, the following examples returns bytes at:
                            // 50-80 (50 to 80), 40- (40 to length=100), -20 (length-20=80 to length=100).
                            long start = sublong(part, 0, part.indexOf("-"));
                            long end = sublong(part, part.indexOf("-") + 1, part.length());

                            if (start == -1) {
                                start = length - end;
                                end = length - 1;
                            } else if (end == -1 || end > length - 1) {
                                end = length - 1;
                            }

                            // Check if Range is syntactically valid. If not, then return 416.
                            if (start > end) {
                                response.setHeader("Content-Range", "bytes */" + length); // Required in 416.
                                response.sendError(HttpServletResponse.SC_REQUESTED_RANGE_NOT_SATISFIABLE);
                                return;
                            }

                            // Add range.
                            ranges.add(new Range(start, end, length));
                        }
                    }
                }
                boolean acceptsGzip = false;
                String disposition = "inline";

                if (mime_type.startsWith("text")) {
                    //String acceptEncoding = request.getHeader("Accept-Encoding");
                    // acceptsGzip = acceptEncoding != null && accepts(acceptEncoding, "gzip");
                    // mime_type += ";charset=UTF-8";
                }

                // Else, expect for images, determine content disposition. If content type is supported by
                // the browser, then set to inline, else attachment which will pop a 'save as' dialogue.
                else if (!mime_type.startsWith("image")) {
                    String accept = request.getHeader("Accept");
                    disposition = accept != null && accepts(accept, mime_type) ? "inline" : "attachment";
                }

                // Initialize response.
                response.reset();
                response.setBufferSize(DEFAULT_BUFFER_SIZE);
                response.setHeader("Content-Disposition", disposition + ";filename=\"" + fileName + "\"");
                response.setHeader("Accept-Ranges", "bytes");
                response.setHeader("ETag", eTag);
                response.setDateHeader("Last-Modified", lastModified);
                response.setDateHeader("Expires", expires);

                // Send requested file (part(s)) to client ------------------------------------------------

                // Prepare streams.
                RandomAccessFile input = null;
                OutputStream output = null;

                try {
                    // Open streams.
                    input = new RandomAccessFile(archivo, "r");
                    output = response.getOutputStream();

                    if (ranges.isEmpty() || ranges.get(0) == full) {

                        // Return full file.
                        Range r = full;
                        response.setContentType(mime_type);
                        response.setHeader("Content-Range", "bytes " + r.start + "-" + r.end + "/" + r.total);

                        if (content) {

                            // Content length is not directly predictable in case of GZIP.
                            // So only add it if there is no means of GZIP, else browser will hang.
                            response.setHeader("Content-Length", String.valueOf(r.length));

                            // Copy full range.
                            copy(input, output, r.start, r.length);
                        }

                    } else if (ranges.size() == 1) {

                        // Return single part of file.
                        Range r = ranges.get(0);
                        response.setContentType(mime_type);
                        response.setHeader("Content-Range", "bytes " + r.start + "-" + r.end + "/" + r.total);
                        response.setHeader("Content-Length", String.valueOf(r.length));
                        response.setStatus(HttpServletResponse.SC_PARTIAL_CONTENT); // 206.

                        if (content) {
                            // Copy single part range.
                            copy(input, output, r.start, r.length);
                        }

                    } else {

                        // Return multiple parts of file.
                        response.setContentType("multipart/byteranges; boundary=" + MULTIPART_BOUNDARY);
                        response.setStatus(HttpServletResponse.SC_PARTIAL_CONTENT); // 206.

                        if (content) {
                            // Cast back to ServletOutputStream to get the easy println methods.
                            ServletOutputStream sos = (ServletOutputStream) output;

                            // Copy multi part range.
                            for (Range r : ranges) {
                                // Add multipart boundary and header fields for every range.
                                sos.println();
                                sos.println("--" + MULTIPART_BOUNDARY);
                                sos.println("Content-Type: " + mime_type);
                                sos.println("Content-Range: bytes " + r.start + "-" + r.end + "/" + r.total);

                                // Copy single part range of multi part range.
                                copy(input, output, r.start, r.length);
                            }

                            // End with multipart boundary.
                            sos.println();
                            sos.println("--" + MULTIPART_BOUNDARY + "--");
                        }
                    }
                } finally {
                    // Gently close streams.
                    close(output);
                    close(input);
                }
            } else {
                //java.io.OutputStream out = response.getOutputStream();
                response.sendError(404);
                //out.write(uri.getBytes());
            }
        } else {
            response.sendError(401);
        }
    } catch (Exception e) {
        System.out.println("Error en el processRequest() de ServidorArchivos: " + e.getMessage());
    }
}

From source file:com.liferay.opensocial.adhocgadget.action.ConfigurationActionImpl.java

License:Open Source License

@Override
public void processAction(PortletConfig portletConfig, ActionRequest actionRequest,
        ActionResponse actionResponse) throws Exception {

    String tabs2 = ParamUtil.get(actionRequest, "tabs2", "gadget");

    if (tabs2.equals("manage-oauth")) {
        ShindigUtil.updateOAuthConsumers(actionRequest, actionResponse);

        String portletResource = ParamUtil.getString(actionRequest, "portletResource");

        SessionMessages.add(actionRequest,
                PortalUtil.getPortletId(actionRequest) + SessionMessages.KEY_SUFFIX_REFRESH_PORTLET,
                portletResource);/* www . j  av  a2 s  .  c o m*/

        SessionMessages.add(actionRequest,
                PortalUtil.getPortletId(actionRequest) + SessionMessages.KEY_SUFFIX_UPDATED_CONFIGURATION);
    } else if (tabs2.equals("preferences")) {
        doProcessAction(portletConfig, actionRequest, actionResponse);
    } else {
        String url = getParameter(actionRequest, "url");

        try {
            ShindigUtil.getGadgetSpec(url, false, true);
        } catch (Exception e) {
            SessionErrors.add(actionRequest, e.getClass());
        }

        setPreference(actionRequest, "url", url);

        super.processAction(portletConfig, actionRequest, actionResponse);
    }
}

From source file:com.liferay.so.configurations.portlet.ConfigurationsPortlet.java

License:Open Source License

public void updateGeneralConfigurations(ActionRequest actionRequest, ActionResponse actionResponse)
        throws Exception {

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

    boolean addSitePermission = ParamUtil.get(actionRequest, "addSitePermission", true);

    updateRolePermissions(themeDisplay.getCompanyId(), addSitePermission);

    UnicodeProperties properties = PropertiesParamUtil.getProperties(actionRequest, "preferences--");

    PortletPreferences portletPreferences = PortletPreferencesLocalServiceUtil.getPreferences(
            themeDisplay.getCompanyId(), themeDisplay.getCompanyId(), PortletKeys.PREFS_OWNER_TYPE_COMPANY,
            LayoutConstants.DEFAULT_PLID, PortletKeys.SO_CONFIGURATIONS);

    for (Map.Entry<String, String> entry : properties.entrySet()) {
        portletPreferences.setValue(entry.getKey(), entry.getValue());
    }/*  ww  w. j a v  a2s  . c o m*/

    try {
        portletPreferences.store();
    } catch (ValidatorException ve) {
        SessionErrors.add(actionRequest, ValidatorException.class.getName(), ve);
    }
}

From source file:com.liferay.sync.internal.servlet.filter.SyncJSONFilter.java

License:Open Source License

@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)
        throws IOException, ServletException {

    SyncDevice syncDevice = null;/*www.  ja  v a 2s  .  c om*/

    HttpServletRequest httpServletRequest = (HttpServletRequest) servletRequest;

    String uuid = httpServletRequest.getHeader("Sync-UUID");

    if (uuid != null) {
        syncDevice = SyncDeviceLocalServiceUtil.fetchSyncDeviceByUuidAndCompanyId(uuid,
                _portal.getCompanyId(httpServletRequest));
    }

    if (syncDevice == null) {
        syncDevice = SyncDeviceLocalServiceUtil.createSyncDevice(0);
    }

    syncDevice.setHostname(servletRequest.getRemoteHost());

    SyncDeviceThreadLocal.setSyncDevice(syncDevice);

    if (uuid != null) {
        filterChain.doFilter(servletRequest, servletResponse);

        return;
    }

    String uri = (String) servletRequest.getAttribute(WebKeys.INVOKER_FILTER_URI);

    if (uri.equals("/api/jsonws/invoke")) {
        String contentType = httpServletRequest.getHeader(HttpHeaders.CONTENT_TYPE);

        if ((contentType == null) || !contentType.startsWith(ContentTypes.MULTIPART_FORM_DATA)) {

            filterChain.doFilter(servletRequest, servletResponse);

            return;
        }

        if (!(httpServletRequest instanceof UploadServletRequest)) {
            servletRequest = _portal.getUploadServletRequest(httpServletRequest);
        }

        if (!isSyncJSONRequest(servletRequest)) {
            filterChain.doFilter(servletRequest, servletResponse);

            return;
        }
    } else if (!uri.startsWith("/api/jsonws/sync")) {
        filterChain.doFilter(servletRequest, servletResponse);

        return;
    }

    if (ParamUtil.get(httpServletRequest, "debug", false)) {
        filterChain.doFilter(servletRequest, servletResponse);

        return;
    }

    Throwable throwable = null;

    if (PrefsPropsUtil.getBoolean(_portal.getCompanyId(httpServletRequest),
            SyncServiceConfigurationKeys.SYNC_SERVICES_ENABLED,
            SyncServiceConfigurationValues.SYNC_SERVICES_ENABLED)) {

        int absoluteSyncClientMinBuild = 0;
        int syncClientMinBuild = 0;

        String syncDeviceType = httpServletRequest.getHeader("Sync-Device");

        if (syncDeviceType == null) {
            throwable = new SyncDeviceHeaderException();
        } else if (syncDeviceType.startsWith("desktop")) {
            absoluteSyncClientMinBuild = _ABSOLUTE_SYNC_CLIENT_MIN_BUILD_DESKTOP;

            syncClientMinBuild = PrefsPropsUtil.getInteger(_portal.getCompanyId(httpServletRequest),
                    SyncServiceConfigurationKeys.SYNC_CLIENT_MIN_BUILD_DESKTOP,
                    SyncServiceConfigurationValues.SYNC_CLIENT_MIN_BUILD_DESKTOP);
        } else if (syncDeviceType.equals("mobile-android")) {
            absoluteSyncClientMinBuild = _ABSOLUTE_SYNC_CLIENT_MIN_BUILD_ANDROID;

            syncClientMinBuild = PrefsPropsUtil.getInteger(_portal.getCompanyId(httpServletRequest),
                    SyncServiceConfigurationKeys.SYNC_CLIENT_MIN_BUILD_ANDROID,
                    SyncServiceConfigurationValues.SYNC_CLIENT_MIN_BUILD_ANDROID);
        } else if (syncDeviceType.equals("mobile-ios")) {
            absoluteSyncClientMinBuild = _ABSOLUTE_SYNC_CLIENT_MIN_BUILD_IOS;

            syncClientMinBuild = PrefsPropsUtil.getInteger(_portal.getCompanyId(httpServletRequest),
                    SyncServiceConfigurationKeys.SYNC_CLIENT_MIN_BUILD_IOS,
                    SyncServiceConfigurationValues.SYNC_CLIENT_MIN_BUILD_IOS);
        } else {
            throwable = new SyncDeviceHeaderException();
        }

        if (throwable == null) {
            if (syncClientMinBuild < absoluteSyncClientMinBuild) {
                syncClientMinBuild = absoluteSyncClientMinBuild;
            }

            int syncBuild = httpServletRequest.getIntHeader("Sync-Build");

            if (syncBuild >= syncClientMinBuild) {
                filterChain.doFilter(servletRequest, servletResponse);

                return;
            } else {
                throwable = new SyncClientMinBuildException(
                        "Sync client does not meet minimum build " + syncClientMinBuild);
            }
        }
    } else {
        throwable = new SyncServicesUnavailableException();
    }

    servletResponse.setCharacterEncoding(StringPool.UTF8);
    servletResponse.setContentType(ContentTypes.APPLICATION_JSON);

    OutputStream outputStream = servletResponse.getOutputStream();

    String json = _syncUtil.buildExceptionMessage(throwable);

    json = "{\"exception\": \"" + json + "\"}";

    outputStream.write(json.getBytes(StringPool.UTF8));

    outputStream.close();
}

From source file:com.liferay.sync.internal.servlet.SyncDownloadServlet.java

License:Open Source License

@Override
public void service(HttpServletRequest request, HttpServletResponse response)
        throws IOException, ServletException {

    try {/*w  w w.j a v a 2 s .  c o m*/
        HttpSession session = request.getSession();

        if (PortalSessionThreadLocal.getHttpSession() == null) {
            PortalSessionThreadLocal.setHttpSession(session);
        }

        User user = _portal.getUser(request);

        String syncUuid = request.getHeader("Sync-UUID");

        if (syncUuid != null) {
            SyncDevice syncDevice = SyncDeviceLocalServiceUtil.fetchSyncDeviceByUuidAndCompanyId(syncUuid,
                    user.getCompanyId());

            if (syncDevice != null) {
                syncDevice.checkStatus();
            }
        }

        PermissionChecker permissionChecker = PermissionCheckerFactoryUtil.create(user);

        PermissionThreadLocal.setPermissionChecker(permissionChecker);

        String path = _http.fixPath(request.getPathInfo());

        String[] pathArray = StringUtil.split(path, CharPool.SLASH);

        if (pathArray[0].equals("image")) {
            long imageId = GetterUtil.getLong(pathArray[1]);

            sendImage(request, response, imageId);
        } else if (pathArray[0].equals("zip")) {
            String zipFileIds = ParamUtil.get(request, "zipFileIds", StringPool.BLANK);

            if (Validator.isNull(zipFileIds)) {
                throw new IllegalArgumentException("Missing parameter zipFileIds");
            }

            JSONArray zipFileIdsJSONArray = JSONFactoryUtil.createJSONArray(zipFileIds);

            sendZipFile(response, user.getUserId(), zipFileIdsJSONArray);
        } else if (pathArray[0].equals("zipfolder")) {
            long repositoryId = ParamUtil.getLong(request, "repositoryId");
            long folderId = ParamUtil.getLong(request, "folderId");

            if (repositoryId == 0) {
                throw new IllegalArgumentException("Missing parameter repositoryId");
            } else if (folderId == 0) {
                throw new IllegalArgumentException("Missing parameter folderId");
            }

            sendZipFolder(response, user.getUserId(), repositoryId, folderId);
        } else {
            long groupId = GetterUtil.getLong(pathArray[0]);
            String fileUuid = pathArray[1];

            Group group = _groupLocalService.fetchGroup(groupId);

            if ((group == null) || !_syncUtil.isSyncEnabled(group)) {
                response.setHeader(_ERROR_HEADER, SyncSiteUnavailableException.class.getName());

                ServletResponseUtil.write(response, new byte[0]);

                return;
            }

            boolean patch = ParamUtil.getBoolean(request, "patch");

            if (patch) {
                sendPatch(request, response, user.getUserId(), groupId, fileUuid);
            } else {
                sendFile(request, response, user.getUserId(), groupId, fileUuid);
            }
        }
    } catch (NoSuchFileEntryException nsfee) {
        _portal.sendError(HttpServletResponse.SC_NOT_FOUND, nsfee, request, response);
    } catch (NoSuchFileVersionException nsfve) {
        _portal.sendError(HttpServletResponse.SC_NOT_FOUND, nsfve, request, response);
    } catch (Exception e) {
        _portal.sendError(e, request, response);
    }
}