Package com.dotmarketing.portlets.htmlpages.model

Examples of com.dotmarketing.portlets.htmlpages.model.HTMLPage


              .getStructureByVelocityVarName(stVelocityVarName);

          if (!InodeUtils.isSet(st.getPagedetail()))
            continue;

          HTMLPage page = htmlAPI.loadLivePageById(
              st.getPagedetail(), systemUser, true);

          Logger.debug(this, " Creating Site Map for Structure "
              + stVelocityVarName);
          Identifier pageIdentifier = identAPI.find(page
              .getIdentifier());

          Logger.debug(this,
              " Performing Host Parameter validation Page Identifider Host ["
                  + pageIdentifier.getHostId()
                  + "], Host Identifider ["
                  + host.getIdentifier() + "], Deleted ["
                  + page.isDeleted() + "], Live ["
                  + page.isLive() + "]");

          if (!(host.getIdentifier().equals(
              pageIdentifier.getHostId()) && (!page.isDeleted() && page
              .isLive()))) {
            Logger.debug(this,
                "Host Parameter validation failed for structure ["
                    + stVelocityVarName + "]");
            continue;
          }

          String query = "+structureName:" + st.getVelocityVarName()
              + " +deleted:false +live:true";

          List<Contentlet> hits = conAPI.search(query, -1, 0, "",
              systemUser, true);

          String structureURLMap = st.getUrlMapPattern();

          List<RegExMatch> matches = null;

          if (useStructureURLMap
              && UtilMethods.isSet(structureURLMap)) {
            matches = RegEX.find(st.getUrlMapPattern(),
                "({[^{}]+})");
          }
          for (Contentlet contenlet : hits) {
            try {
              if (usePermalinks) {
                stringbuf = "<url><loc>"
                    + XMLUtils.xmlEscape("http://"
                        + host.getHostname()
                        + "/permalink/"
                        + contenlet.getIdentifier()
                        + "/" + st.getPagedetail()
                        + "/")
                    + "</loc><lastmod>"
                    + modifiedDateStringValue
                    + "</lastmod><changefreq>daily</changefreq></url>\n";
              } else if (useStructureURLMap
                  && UtilMethods.isSet(structureURLMap)
                  && (matches != null)) {
                String uri = structureURLMap;
                Logger.debug(this,
                    " Found the URL String for validation ["
                        + uri + "]");
                for (RegExMatch match : matches) {
                  String urlMapField = match.getMatch();
                  String urlMapFieldValue = contenlet
                      .getStringProperty(urlMapField
                          .substring(1, (urlMapField
                              .length() - 1)));
                  urlMapField = urlMapField.replaceFirst(
                      "\\{", "\\\\{");
                  urlMapField = urlMapField.replaceFirst(
                      "\\}", "\\\\}");

                  if (urlMapFieldValue != null) {
                    uri = uri.replaceAll(urlMapField,
                        urlMapFieldValue);
                  }
                  Logger.debug(this,
                      "Performing Variable replacement - urlMapField ["
                          + match.getMatch()
                          + "], urlMapField [ "
                          + urlMapField
                          + "], urlMapFieldValue ["
                          + urlMapFieldValue
                          + "], uri [" + uri + "]");
                }

                if (uri == null
                    && UtilMethods
                        .isSet(st.getDetailPage())) {
                  if (page != null
                      && UtilMethods.isSet(page
                          .getIdentifier())) {
                    uri = page.getURI() + "?id="
                        + contenlet.getInode();
                  }
                }
                String urlRelacementText = getUrlPatternReplacementText(
                    host, stVelocityVarName);

                uri = uri.replaceAll(urlRelacementText, "");

                Logger.debug(this,
                    "Performing URL replacement - urlRelacementText ["
                        + urlRelacementText
                        + "], uri [" + uri + "]");

                stringbuf = "<url><loc>"
                    + XMLUtils.xmlEscape("http://"
                        + host.getHostname() + uri)
                    + "</loc><lastmod>"
                    + modifiedDateStringValue
                    + "</lastmod><changefreq>daily</changefreq></url>\n";
              } else {
                stringbuf = "<url><loc>"
                    + XMLUtils.xmlEscape("http://"
                        + host.getHostname()
                        + pageIdentifier.getURI()
                        + "?id="
                        + contenlet.getIdentifier())
                    + "</loc><lastmod>"
                    + modifiedDateStringValue
                    + "</lastmod><changefreq>daily</changefreq></url>\n";
              }
              writeFile(stringbuf);
              addRegistryProcessed();

            } catch (Exception e) {
              Logger.error(this, e.getMessage(), e);
            }
          }
        }
        /**
         * This part add the show on menu pages. similar as we do in
         * navigationwebapi to generate sitemap
         * */
        java.util.List<Folder> itemsList = new ArrayList<Folder>();

        itemsList = folderAPI.findSubFolders(host, true);

        //Logger.warn(this, "Finding Subfolders for referebce [" + itemsList.size() + "]");

        Comparator<Folder> comparator = new AssetsComparator(
            orderDirection);
        Collections.sort(itemsList, comparator);

        List<Inode> itemsList2 = new ArrayList<Inode>();

        for (Folder f : itemsList) {
          if (f instanceof Folder) {
            //Logger.warn(this, "Folder Iteration in progress Name [" + f.getName() + "], show on Menu Indicator [" + f.isShowOnMenu() + "]");
            itemsList2.addAll(folderAPI.findMenuItems(f,
                systemUser, true));
          }
        }

        //Logger.warn(this, "List Size [" + itemsList2 + "]");

        if (itemsList2.size() > 0) {

          // /FIRST LEVEL MENU ITEMS!!!!
          for (Permissionable itemChild : itemsList) {

            if (itemChild instanceof Folder) {

              Folder folderChild = (Folder) itemChild;

              Logger.debug(this, "Folder Iteration in progress Name [" + folderChild.getName() + "], show on Menu Indicator [" + folderChild.isShowOnMenu() + "]");

              // recursive method here
              buildSubFolderSiteMapMenu(folderChild, 100, 1, 1);

            } else if (itemChild instanceof Link) {
              Link link = (Link) itemChild;
              if (link.isLive() && !link.isDeleted()) {
                if (link.getUrl()
                    .startsWith(host.getHostname())) {
                  stringbuf = "<url><loc>"
                      + XMLUtils.xmlEscape(link
                          .getProtocal()
                          + link.getUrl())
                      + "</loc><lastmod>"
                      + modifiedDateStringValue
                      + "</lastmod><changefreq>daily</changefreq></url>\n";
                  writeFile(stringbuf);
                  addRegistryProcessed();
                }
              }
            } else if (itemChild instanceof HTMLPage) {
              HTMLPage page = (HTMLPage) itemChild;
              Logger.debug(this, "Folder Page Configuration " + page.getURI());
              if (page.isLive() && !page.isDeleted()) {
                String indexPageConfiguration = "/index."+ Config.getStringProperty("VELOCITY_PAGE_EXTENSION");
                String pathToPageUrl = XMLUtils.xmlEscape("http://"+ host.getHostname() + page.getURI());

                if (pathToPageUrl.endsWith(indexPageConfiguration)) {
                  pathToPageUrl = pathToPageUrl.replace(indexPageConfiguration, "");
                }

View Full Code Here


              writeFile(stringbuf);
              addRegistryProcessed();
            }
          }
        } else if (childChild2 instanceof HTMLPage) {
          HTMLPage page2 = (HTMLPage) childChild2;
          Identifier childChild2Ident = identAPI.find(page2
              .getIdentifier());
          if (page2.isLive() && !page2.isDeleted()) {
            String indexPageConfiguration = "/index."+ Config.getStringProperty("VELOCITY_PAGE_EXTENSION");

            String pathToPageUrl = XMLUtils.xmlEscape("http://" + host.getHostname() + childChild2Ident.getURI());

            if (pathToPageUrl.endsWith(indexPageConfiguration) && isIndexPageAlreadyConfigured) {
View Full Code Here

    List<PublishQueueElement> assets = config.getAssets();

    for (PublishQueueElement asset : assets) {
      if(asset.getType().equals("htmlpage")) {
        try {
          HTMLPage page = APILocator.getHTMLPageAPI().loadLivePageById(asset.getAsset(), user, false);

          if(page == null) {
            page = APILocator.getHTMLPageAPI().loadWorkingPageById(asset.getAsset(), user, false);
          }
         
          if(page == null) {
            Logger.warn(getClass(), "HTMLPage id: "+ (asset.getAsset() != null ? asset.getAsset() : "N/A") +" does NOT have working or live version, not Pushed");
          } else {
            htmlPages.add(asset.getAsset(), page.getModDate());
            htmlPagesSet.add(asset.getAsset());
          }
         
        } catch (Exception e) {
          Logger.error(getClass(), "Couldn't add the HtmlPage to the Bundle. Bundle ID: " + config.getId() + ", HTMLPage ID: " + asset.getAsset(), e);
View Full Code Here

                contentsSet.add(contentlet.getIdentifier());
              }

            // add htmlpages dependencies
            } else if(InodeUtils.isSet(id.getInode()) && id.getAssetType().equals("htmlpage")) {
              HTMLPage page = APILocator.getHTMLPageAPI().loadLivePageById(id.getId(), user, false);

              if(page==null) {
                page = APILocator.getHTMLPageAPI().loadWorkingPageById(id.getId(), user, false);
              }

              htmlPages.addOrClean(id.getId(), page.getModDate());
              htmlPagesSet.add(id.getId());
            }
          }
        }
View Full Code Here

        hosts.addOrClean( iden.getHostId(), h.getModDate());
        hostsSet.add(iden.getHostId());
        Folder folder = folderAPI.findFolderByPath(iden.getParentPath(), iden.getHostId(), user, false);
        folders.addOrClean( folder.getInode(), folder.getModDate());
        foldersSet.add(folder.getInode());
        HTMLPage workingPage = APILocator.getHTMLPageAPI().loadWorkingPageById(pageId, user, false);
        HTMLPage livePage = APILocator.getHTMLPageAPI().loadLivePageById(pageId, user, false);

        // working template working page
        Template workingTemplateWP = null;
        // live template working page
        Template liveTemplateWP = null;

        if(workingPage!=null) {
          workingTemplateWP = APILocator.getTemplateAPI().findWorkingTemplate(workingPage.getTemplateId(), user, false);
          liveTemplateWP = APILocator.getTemplateAPI().findLiveTemplate(workingPage.getTemplateId(), user, false);
          // Templates dependencies
          templates.addOrClean( workingPage.getTemplateId(), workingTemplateWP.getModDate());
          templatesSet.add(workingPage.getTemplateId());
        }

        Template liveTemplateLP = null;

        // live template live page
        if(livePage!=null) {
          liveTemplateLP = APILocator.getTemplateAPI().findLiveTemplate(livePage.getTemplateId(), user, false);
          // Templates dependencies
          templates.addOrClean( livePage.getTemplateId(), livePage.getModDate());
          templatesSet.add(livePage.getTemplateId());
        }

        // Containers dependencies
        containerList.clear();
View Full Code Here

    Host host = hostWebAPI.getCurrentHost(request);

    Identifier id = APILocator.getIdentifierAPI().find(host, uri);
    request.setAttribute("idInode", id.getInode());

    HTMLPage htmlPage = (HTMLPage) APILocator.getVersionableAPI()
        .findWorkingVersion(id, APILocator.getUserAPI().getSystemUser(), false);
    HTMLPageAPI htmlPageAPI = APILocator.getHTMLPageAPI();
    VelocityUtil.makeBackendContext(context, htmlPage, "", id.getURI(), request, true, false, false, host);

    boolean canUserWriteOnTemplate = permissionAPI.doesUserHavePermission(htmlPageAPI.getTemplateForWorkingHTMLPage(htmlPage),
View Full Code Here

        }
   
   
        Logger.debug(VelocityServlet.class, "Page Permissions for URI=" + uri);
   
        HTMLPage page = null;
        try {
          // we get the page and check permissions below
          page = APILocator.getHTMLPageAPI().loadLivePageById(ident.getInode(), APILocator.getUserAPI().getSystemUser(), false);
        } catch (Exception e) {
          Logger.error(HTMLPageWebAPI.class, "unable to load live version of page: " + ident.getInode() + " because " + e.getMessage());
          return;
        }
   
        // Check if the page is visible by a CMS Anonymous role
        if (!permissionAPI.doesUserHavePermission(page, PERMISSION_READ, user, true)) {
          // this page is protected. not anonymous access
   
          /*******************************************************************
           * If we need to redirect someone somewhere to login before seeing a
           * page, we need to edit the /portal/401.jsp page to sendRedirect
           * the user to the proper login page. We are not using the
           * REDIRECT_TO_LOGIN variable in the config any longer.
           ******************************************************************/
          if (!signedIn) {
            // No need for the below LAST_PATH attribute on the front end
            // http://jira.dotmarketing.net/browse/DOTCMS-2675
            // request.getSession().setAttribute(WebKeys.LAST_PATH,
            // new ObjectValuePair(uri, request.getParameterMap()));
            request.getSession().setAttribute(com.dotmarketing.util.WebKeys.REDIRECT_AFTER_LOGIN, uri);
   
            Logger.debug(VelocityServlet.class, "VELOCITY CHECKING PERMISSION: Page doesn't have anonymous access" + uri);
   
            Logger.debug(VelocityServlet.class, "401 URI = " + uri);
   
            Logger.debug(VelocityServlet.class, "Unauthorized URI = " + uri);
            response.sendError(401, "The requested page/file is unauthorized");
            return;
   
          } else if (!permissionAPI.getReadRoles(ident).contains(APILocator.getRoleAPI().loadLoggedinSiteRole())) {
            // user is logged in need to check user permissions
            Logger.debug(VelocityServlet.class, "VELOCITY CHECKING PERMISSION: User signed in");
   
            // check user permissions on this asset
            if (!permissionAPI.doesUserHavePermission(ident, PERMISSION_READ, user, true)) {
              // the user doesn't have permissions to see this page
              // go to unauthorized page
              Logger.warn(VelocityServlet.class, "VELOCITY CHECKING PERMISSION: Page doesn't have any access for this user");
              response.sendError(403, "The requested page/file is forbidden");
              return;
            }
          }
        }
   
        Logger.debug(VelocityServlet.class, "Recording the ClickStream");
        if(Config.getBooleanProperty("ENABLE_CLICKSTREAM_TRACKING", false)) {
          if (user != null) {
            UserProxy userProxy = com.dotmarketing.business.APILocator.getUserProxyAPI().getUserProxy(user,
                APILocator.getUserAPI().getSystemUser(), false);
            if (!userProxy.isNoclicktracking()) {
              ClickstreamFactory.addRequest((HttpServletRequest) request, ((HttpServletResponse) response), host);
            }
          } else {
            ClickstreamFactory.addRequest((HttpServletRequest) request, ((HttpServletResponse) response), host);
          }
        }
   
        // Begin Page Caching
        boolean buildCache = false;
        String key = getPageCacheKey(request);
        if (key != null) {
   
          String cachedPage = CacheLocator.getBlockDirectiveCache().get(key, (int) page.getCacheTTL());
   
          if (cachedPage == null || "refresh".equals(request.getParameter("dotcache"))
              || "refresh".equals(request.getAttribute("dotcache"))
              || "refresh".equals(request.getSession().getAttribute("dotcache"))) {
            // build cached response
            buildCache = true;
          } else {
            // have cached response and are not refreshing, send it
            response.getWriter().write(cachedPage);
            return;
          }
        }
   
        Writer out = (buildCache) ? new StringWriter(4096) : new VelocityFilterWriter(response.getWriter());
   
        //get the context from the requst if possible
        Context context = VelocityUtil.getWebContext(request, response);
   
        request.setAttribute("velocityContext", context);
        Logger.debug(VelocityServlet.class, "HTMLPage Identifier:" + ident.getInode());
   
   
   
        try {
   
          VelocityUtil.getEngine().getTemplate("/live/" + ident.getInode() + "." + VELOCITY_HTMLPAGE_EXTENSION).merge(context, out);
   
        } catch (ParseErrorException e) {
          // out.append(e.getMessage());
        }
   
        context = null;
        if (buildCache) {
          String trimmedPage = out.toString().trim();
          response.getWriter().write(trimmedPage);
          response.getWriter().close();
          synchronized (key) {
            //CacheLocator.getBlockDirectiveCache().clearCache();
            CacheLocator.getHTMLPageCache().remove(page);
            CacheLocator.getBlockDirectiveCache().add(getPageCacheKey(request), trimmedPage, (int) page.getCacheTTL());
          }
        } else {
          out.close();
        }
   
View Full Code Here

    // creates the context where to place the variables
    response.setContentType(CHARSET);
    Context context = VelocityUtil.getWebContext(request, response);

    HTMLPage htmlPage = (HTMLPage) APILocator.getVersionableAPI().findWorkingVersion(id, user, true);
    HTMLPageAPI htmlPageAPI = APILocator.getHTMLPageAPI();
    PublishingEndPointAPI pepAPI = APILocator.getPublisherEndPointAPI();
    List<PublishingEndPoint> receivingEndpoints = pepAPI.getReceivingEndPoints();
    // to check user has permission to write on this page
        boolean hasWritePermOverHTMLPage = permissionAPI.doesUserHavePermission( htmlPage, PERMISSION_WRITE, user );
        boolean hasPublishPermOverHTMLPage = permissionAPI.doesUserHavePermission( htmlPage, PERMISSION_PUBLISH, user );
        boolean hasRemotePublishPermOverHTMLPage = hasPublishPermOverHTMLPage && LicenseUtil.getLevel() > 199;
        boolean hasEndPoints = UtilMethods.isSet( receivingEndpoints ) && !receivingEndpoints.isEmpty();

        context.put( "EDIT_HTMLPAGE_PERMISSION", new Boolean( hasWritePermOverHTMLPage ) );
        context.put( "PUBLISH_HTMLPAGE_PERMISSION", new Boolean( hasPublishPermOverHTMLPage ) );
        context.put( "REMOTE_PUBLISH_HTMLPAGE_PERMISSION", new Boolean( hasRemotePublishPermOverHTMLPage ) );
        context.put( "REMOTE_PUBLISH_END_POINTS", new Boolean( hasEndPoints ) );
        context.put( "canViewDiff", new Boolean( LicenseUtil.getLevel() > 199 ? true : false ) );
    boolean canUserWriteOnTemplate = permissionAPI.doesUserHavePermission(htmlPageAPI.getTemplateForWorkingHTMLPage(htmlPage),
        PERMISSION_WRITE, user, true);
    context.put("EDIT_TEMPLATE_PERMISSION", canUserWriteOnTemplate);

    com.dotmarketing.portlets.templates.model.Template cmsTemplate = com.dotmarketing.portlets.htmlpages.factories.HTMLPageFactory
        .getHTMLPageTemplate(htmlPage, true);
    Identifier templateIdentifier = APILocator.getIdentifierAPI().find(cmsTemplate);

    Logger.debug(VelocityServlet.class, "VELOCITY TEMPLATE INODE=" + cmsTemplate.getInode());

    VelocityUtil.makeBackendContext(context, htmlPage, cmsTemplate.getInode(), id.getURI(), request, true, false, true, host);
    context.put("previewPage", "2");
    context.put("livePage", "0");
    // get the containers for the page and stick them in context
    List<Container> containers = APILocator.getTemplateAPI().getContainersInTemplate(cmsTemplate,
        APILocator.getUserAPI().getSystemUser(),false);
    for (Container c : containers) {

      context.put(String.valueOf("container" + c.getIdentifier()),
          "/working/" + c.getIdentifier() + "." + Config.getStringProperty("VELOCITY_CONTAINER_EXTENSION"));

      context.put("EDIT_CONTAINER_PERMISSION" + c.getIdentifier(), permissionAPI.doesUserHavePermission(c, PERMISSION_WRITE, user, true));

      boolean hasWritePermOverTheStructure = false;

      for (ContainerStructure cs : APILocator.getContainerAPI().getContainerStructures(c)) {
        Structure st = StructureCache.getStructureByInode(cs.getStructureId());

        hasWritePermOverTheStructure |= permissionAPI.doesUserHavePermission(st, PERMISSION_WRITE, user, true);
      }


      context.put("ADD_CONTENT_PERMISSION" + c.getIdentifier(), new Boolean(hasWritePermOverTheStructure));

      Logger.debug(VelocityServlet.class, String.valueOf("container" + c.getIdentifier()) + "=/working/" + c.getIdentifier() + "."
          + Config.getStringProperty("VELOCITY_CONTAINER_EXTENSION"));

      String sort = (c.getSortContentletsBy() == null) ? "tree_order" : c.getSortContentletsBy();

      boolean staticContainer = !UtilMethods.isSet(c.getLuceneQuery());

      List<Contentlet> contentlets = null;

      // get contentlets only for main frame
      if (request.getParameter("mainFrame") != null) {
        if (staticContainer) {
          Logger.debug(VelocityServlet.class, "Static Container!!!!");

          Logger.debug(VelocityServlet.class, "html=" + htmlPage.getInode() + " container=" + c.getInode());

          // The container doesn't have categories
          Identifier idenHtmlPage = APILocator.getIdentifierAPI().find(htmlPage);
          Identifier idenContainer = APILocator.getIdentifierAPI().find(c);
          contentlets = conAPI.findPageContentlets(idenHtmlPage.getInode(), idenContainer.getInode(), sort, true, -1, user, true);
View Full Code Here

        // creates the context where to place the variables
        response.setContentType( CHARSET );
        Context context = VelocityUtil.getWebContext( request, response );

        HTMLPage htmlPage = (HTMLPage) APILocator.getVersionableAPI().findWorkingVersion( id, APILocator.getUserAPI().getSystemUser(), false );
        HTMLPageAPI htmlPageAPI = APILocator.getHTMLPageAPI();
        PublishingEndPointAPI pepAPI = APILocator.getPublisherEndPointAPI();
    List<PublishingEndPoint> receivingEndpoints = pepAPI.getReceivingEndPoints();
        // to check user has permission to write on this page
        boolean hasAddChildrenPermOverHTMLPage = permissionAPI.doesUserHavePermission( htmlPage, PERMISSION_CAN_ADD_CHILDREN, backendUser );
        boolean hasWritePermOverHTMLPage = permissionAPI.doesUserHavePermission( htmlPage, PERMISSION_WRITE, backendUser );
        boolean hasPublishPermOverHTMLPage = permissionAPI.doesUserHavePermission( htmlPage, PERMISSION_PUBLISH, backendUser );
        boolean hasRemotePublishPermOverHTMLPage = hasPublishPermOverHTMLPage && LicenseUtil.getLevel() > 199;
        boolean hasEndPoints = UtilMethods.isSet( receivingEndpoints ) && !receivingEndpoints.isEmpty();

        context.put( "ADD_CHILDREN_HTMLPAGE_PERMISSION", new Boolean( hasAddChildrenPermOverHTMLPage ) );
        context.put( "EDIT_HTMLPAGE_PERMISSION", new Boolean( hasWritePermOverHTMLPage ) );
        context.put( "PUBLISH_HTMLPAGE_PERMISSION", new Boolean( hasPublishPermOverHTMLPage ) );
        context.put( "REMOTE_PUBLISH_HTMLPAGE_PERMISSION", new Boolean( hasRemotePublishPermOverHTMLPage ) );
        context.put( "REMOTE_PUBLISH_END_POINTS", new Boolean(hasEndPoints) );
        context.put( "canAddForm", new Boolean( LicenseUtil.getLevel() > 199 ? true : false ) );
        context.put( "canViewDiff", new Boolean( LicenseUtil.getLevel() > 199 ? true : false ) );

        boolean canUserWriteOnTemplate = permissionAPI.doesUserHavePermission( htmlPageAPI.getTemplateForWorkingHTMLPage( htmlPage ), PERMISSION_WRITE, backendUser ) && portletAPI.hasTemplateManagerRights( backendUser );
        context.put( "EDIT_TEMPLATE_PERMISSION", canUserWriteOnTemplate );

        com.dotmarketing.portlets.templates.model.Template cmsTemplate = com.dotmarketing.portlets.htmlpages.factories.HTMLPageFactory.getHTMLPageTemplate( htmlPage, true );
        //issue- 1775 If User doesn't have edit permission on HTML Pages
       /* if(!hasWritePermOverHTMLPage){
          doPreviewMode(request, response);
          return;
        }*/
        if ( cmsTemplate == null ) {// DOTCMS-4051
            cmsTemplate = new com.dotmarketing.portlets.templates.model.Template();
            Logger.debug( VelocityServlet.class, "HTMLPAGE TEMPLATE NOT FOUND" );
        }

        Identifier templateIdentifier = APILocator.getIdentifierAPI().find( cmsTemplate );

        Logger.debug( VelocityServlet.class, "VELOCITY TEMPLATE INODE=" + cmsTemplate.getInode() );

        VelocityUtil.makeBackendContext( context, htmlPage, cmsTemplate.getInode(), id.getURI(), request, true, true, false, host );
        // added to show tabs
        context.put( "previewPage", "1" );
        // get the containers for the page and stick them in context
        List<Container> containers = APILocator.getTemplateAPI().getContainersInTemplate( cmsTemplate, APILocator.getUserAPI().getSystemUser(), false );
        for ( Container c : containers ) {

            context.put( String.valueOf( "container" + c.getIdentifier() ), "/working/" + c.getIdentifier() + "." + Config.getStringProperty( "VELOCITY_CONTAINER_EXTENSION" ) );

            boolean hasWritePermissionOnContainer = permissionAPI.doesUserHavePermission( c, PERMISSION_WRITE, backendUser, false )
                    && portletAPI.hasContainerManagerRights( backendUser );
            boolean hasReadPermissionOnContainer = permissionAPI.doesUserHavePermission( c, PERMISSION_READ, backendUser, false );
            context.put( "EDIT_CONTAINER_PERMISSION" + c.getIdentifier(), hasWritePermissionOnContainer );
            if ( Config.getBooleanProperty( "SIMPLE_PAGE_CONTENT_PERMISSIONING", true ) )
                context.put( "USE_CONTAINER_PERMISSION" + c.getIdentifier(), true );
            else
                context.put( "USE_CONTAINER_PERMISSION" + c.getIdentifier(), hasReadPermissionOnContainer );

            // to check user has permission to write this container
            boolean hasWritePermOverTheStructure = false;

      for (ContainerStructure cs : APILocator.getContainerAPI().getContainerStructures(c)) {
        Structure st = StructureCache.getStructureByInode(cs.getStructureId());

        hasWritePermOverTheStructure |= permissionAPI.doesUserHavePermission(st, PERMISSION_WRITE, backendUser);
      }


            context.put( "ADD_CONTENT_PERMISSION" + c.getIdentifier(), new Boolean( hasWritePermOverTheStructure ) );

            Logger.debug( VelocityServlet.class, String.valueOf( "container" + c.getIdentifier() ) + "=/working/" + c.getIdentifier() + "."
                    + Config.getStringProperty( "VELOCITY_CONTAINER_EXTENSION" ) );

            String sort = (c.getSortContentletsBy() == null) ? "tree_order" : c.getSortContentletsBy();

            List<Contentlet> contentlets = null;

            boolean staticContainer = !UtilMethods.isSet( c.getLuceneQuery() );

            // get contentlets only for main frame
            if ( request.getParameter( "mainFrame" ) != null ) {
                if ( staticContainer ) {
                    Logger.debug( VelocityServlet.class, "Static Container!!!!" );

                    Logger.debug( VelocityServlet.class, "html=" + htmlPage.getInode() + " container=" + c.getInode() );

                    // The container doesn't have categories
                    Identifier idenHtmlPage = APILocator.getIdentifierAPI().find( htmlPage );
                    Identifier idenContainer = APILocator.getIdentifierAPI().find( c );
                    contentlets = conAPI.findPageContentlets( idenHtmlPage.getInode(), idenContainer.getInode(), sort, true, -1, backendUser, true );
View Full Code Here

    // Getting the identifier from the uri
    Identifier id = APILocator.getIdentifierAPI().find(host, uri);

    request.setAttribute("idInode", String.valueOf(id.getInode()));
    HTMLPage htmlPage = (HTMLPage) APILocator.getVersionableAPI()
        .findWorkingVersion(id, APILocator.getUserAPI().getSystemUser(), false);

    boolean isArchived = htmlPage.isDeleted();
    return isArchived;
  }
View Full Code Here

TOP

Related Classes of com.dotmarketing.portlets.htmlpages.model.HTMLPage

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.