public String doExecute() throws Exception {
    if (this.newParentContentId == null) {
      this.repositories =
          RepositoryController.getController()
              .getAuthorizedRepositoryVOList(this.getInfoGluePrincipal(), false);
      return "chooseDestination";
    }

    ceb.throwIfNotEmpty();

    try {
      if (this.qualifyerXML != null && this.qualifyerXML.length() != 0) {
        Document document = new DOMBuilder().getDocument(this.qualifyerXML);
        List contents = parseContentsFromXML(this.qualifyerXML);
        Iterator i = contents.iterator();
        while (i.hasNext()) {
          ContentVO contentVO = (ContentVO) i.next();
          try {
            ContentControllerProxy.getController()
                .acMoveContent(this.getInfoGluePrincipal(), contentVO, this.newParentContentId);
          } catch (Exception e) {
            this.errorsOccurred = true;
          }
        }
      }
    } catch (Exception e) {
      e.printStackTrace();
    }

    this.topContentId =
        ContentController.getContentController()
            .getRootContentVO(this.repositoryId, this.getInfoGluePrincipal().getName())
            .getContentId();

    this.returnAddress =
        "ViewContent.action?contentId="
            + this.contentVO.getId()
            + "&repositoryId="
            + this.repositoryId;

    return "success";
  }
  public String doExecute() throws Exception {
    AccessConstraintExceptionBuffer ceb = new AccessConstraintExceptionBuffer();

    if (this.extraMultiParameter == null || this.extraMultiParameter.length == 0) {
      if (interceptionPointCategory.equalsIgnoreCase("Content")) {
        Integer contentId = new Integer(parameters);
        ContentVO contentVO = ContentControllerProxy.getController().getContentVOWithId(contentId);
        if (!contentVO.getCreatorName().equalsIgnoreCase(this.getInfoGluePrincipal().getName())) {
          Integer protectedContentId =
              ContentControllerProxy.getController().getProtectedContentId(contentId);
          if (ContentControllerProxy.getController().getIsContentProtected(contentId)
              && !AccessRightController.getController()
                  .getIsPrincipalAuthorized(
                      this.getInfoGluePrincipal(),
                      "Content.ChangeAccessRights",
                      protectedContentId.toString()))
            ceb.add(new AccessConstraintException("Content.contentId", "1006"));
        }
      } else if (interceptionPointCategory.equalsIgnoreCase("SiteNodeVersion")) {
        Integer siteNodeVersionId = new Integer(parameters);
        SiteNodeVersionVO siteNodeVersionVO =
            SiteNodeVersionController.getController().getSiteNodeVersionVOWithId(siteNodeVersionId);

        // If in published state we must first make it working state so it can later be published
        if (siteNodeVersionVO.getStateId().intValue() != SiteNodeVersionVO.WORKING_STATE) {
          this.oldParameters = "" + siteNodeVersionId;
          List events = new ArrayList();
          siteNodeVersionVO =
              SiteNodeStateController.getController()
                  .changeState(
                      siteNodeVersionVO.getId(),
                      SiteNodeVersionVO.WORKING_STATE,
                      "Access right changes",
                      true,
                      this.getInfoGluePrincipal(),
                      siteNodeVersionVO.getSiteNodeId(),
                      events);
          this.newParameters = "" + siteNodeVersionVO.getId();
          this.parameters = "" + siteNodeVersionVO.getId();
          siteNodeVersionId = siteNodeVersionVO.getId();
        }

        if (!siteNodeVersionVO
            .getVersionModifier()
            .equalsIgnoreCase(this.getInfoGluePrincipal().getName())) {
          Integer protectedSiteNodeVersionId =
              SiteNodeVersionControllerProxy.getSiteNodeVersionControllerProxy()
                  .getProtectedSiteNodeVersionId(siteNodeVersionId);
          if (protectedSiteNodeVersionId != null
              && !AccessRightController.getController()
                  .getIsPrincipalAuthorized(
                      this.getInfoGluePrincipal(),
                      "SiteNodeVersion.ChangeAccessRights",
                      protectedSiteNodeVersionId.toString()))
            ceb.add(new AccessConstraintException("SiteNodeVersion.siteNodeId", "1006"));
        }
      }
      ceb.throwIfNotEmpty();
    }

    // logger.info("this.extraMultiParameters[i]:" + this.extraMultiParameter);
    if (this.extraMultiParameter != null && this.extraMultiParameter.length > 0) {
      for (int i = 0; i < this.extraMultiParameter.length; i++) {
        // logger.info("this.extraMultiParameters[i]:" + this.extraMultiParameter[i]);
        AccessRightController.getController()
            .update(this.extraMultiParameter[i], this.getRequest(), interceptionPointCategory);
      }
    } else {
      // logger.info("this.parameters:" + this.parameters);
      AccessRightController.getController()
          .update(this.parameters, this.getRequest(), interceptionPointCategory);
    }

    this.url = getResponse().encodeRedirectURL(this.returnAddress);

    if (newParameters != null) {
      this.url = this.url.replaceAll(this.oldParameters, this.newParameters);
      if (this.url.indexOf("ViewAccessRights") > -1)
        this.url =
            this.url + (!this.url.endsWith("&") ? "&stateChanged=true" : "stateChanged=true");
    }

    if (this.url.indexOf("ViewAccessRights") > -1) {
      this.url = this.url.replaceAll("&saved=true", "");
      this.url = this.url + "&saved=true";
    }

    if (this.closeOnLoad) {
      this.url = this.url.replaceAll("&KeepThis=true", "&closeOnLoad=true&KeepThis=true");
    }

    if (this.url.indexOf("ViewAccessRights") > -1) {
      this.url = this.url.replaceAll("&anchor=[0-9]{1,2}", "");
      this.url = this.url + "&anchor=" + this.anchor;
    }

    if (this.returnAddress.indexOf("http") == 0) {
      getResponse().sendRedirect(url);
      return Action.NONE;
    } else return "success";
  }
  public String doAddGroups() throws Exception {
    AccessConstraintExceptionBuffer ceb = new AccessConstraintExceptionBuffer();

    if (interceptionPointCategory.equalsIgnoreCase("Content")) {
      Integer contentId = new Integer(parameters);
      ContentVO contentVO = ContentControllerProxy.getController().getContentVOWithId(contentId);
      if (!contentVO.getCreatorName().equalsIgnoreCase(this.getInfoGluePrincipal().getName())) {
        Integer protectedContentId =
            ContentControllerProxy.getController().getProtectedContentId(contentId);
        if (ContentControllerProxy.getController().getIsContentProtected(contentId)
            && !AccessRightController.getController()
                .getIsPrincipalAuthorized(
                    this.getInfoGluePrincipal(),
                    "Content.ChangeAccessRights",
                    protectedContentId.toString()))
          ceb.add(new AccessConstraintException("Content.contentId", "1006"));
      }
    } else if (interceptionPointCategory.equalsIgnoreCase("SiteNodeVersion")) {
      Integer siteNodeVersionId = new Integer(parameters);
      SiteNodeVersionVO siteNodeVersionVO =
          SiteNodeVersionController.getController().getSiteNodeVersionVOWithId(siteNodeVersionId);

      // If in published state we must first make it working state so it can later be published
      if (siteNodeVersionVO.getStateId().intValue() != SiteNodeVersionVO.WORKING_STATE) {
        this.oldParameters = "" + siteNodeVersionId;
        List events = new ArrayList();
        siteNodeVersionVO =
            SiteNodeStateController.getController()
                .changeState(
                    siteNodeVersionVO.getId(),
                    SiteNodeVersionVO.WORKING_STATE,
                    "Access right changes",
                    true,
                    this.getInfoGluePrincipal(),
                    siteNodeVersionVO.getSiteNodeId(),
                    events);
        this.newParameters = "" + siteNodeVersionVO.getId();
        this.parameters = "" + siteNodeVersionVO.getId();
        siteNodeVersionId = siteNodeVersionVO.getId();
      }

      if (!siteNodeVersionVO
          .getVersionModifier()
          .equalsIgnoreCase(this.getInfoGluePrincipal().getName())) {
        Integer protectedSiteNodeVersionId =
            SiteNodeVersionControllerProxy.getSiteNodeVersionControllerProxy()
                .getProtectedSiteNodeVersionId(siteNodeVersionId);
        if (protectedSiteNodeVersionId != null
            && !AccessRightController.getController()
                .getIsPrincipalAuthorized(
                    this.getInfoGluePrincipal(),
                    "SiteNodeVersion.ChangeAccessRights",
                    siteNodeVersionId.toString()))
          ceb.add(new AccessConstraintException("SiteNodeVersion.siteNodeId", "1006"));
      }
    }

    ceb.throwIfNotEmpty();

    String[] groupNames = this.getRequest().getParameterValues("groupName");
    AccessRightController.getController()
        .updateGroups(this.accessRightId, this.parameters, groupNames);

    this.url = getResponse().encodeRedirectURL(this.returnAddress);

    if (newParameters != null) {
      this.url = this.url.replaceAll(this.oldParameters, this.newParameters);
      if (this.url.indexOf("ViewAccessRights") > -1)
        this.url =
            this.url + (!this.url.endsWith("&") ? "&stateChanged=true" : "stateChanged=true");
    }

    if (this.returnAddress.indexOf("http") == 0) {
      getResponse().sendRedirect(url);
      return Action.NONE;
    } else return "success";
  }
  public String doV3() throws Exception {
    userSessionKey = "" + System.currentTimeMillis();

    String moveContentInlineOperationDoneHeader =
        getLocalizedString(
            getLocale(),
            "tool.contenttool.moveContentsInlineOperationDoneHeader",
            contentVO.getName());
    String moveContentInlineOperationBackToCurrentPageLinkText =
        getLocalizedString(
            getLocale(),
            "tool.contenttool.moveContentsInlineOperationBackToCurrentContentLinkText");
    String moveContentInlineOperationBackToCurrentPageTitleText =
        getLocalizedString(
            getLocale(),
            "tool.contenttool.moveContentsInlineOperationBackToCurrentContentTitleText");

    if (parentContentId == null && newParentContentId != null) parentContentId = newParentContentId;

    setActionMessage(userSessionKey, moveContentInlineOperationDoneHeader);
    addActionLink(
        userSessionKey,
        new LinkBean(
            "currentPageUrl",
            moveContentInlineOperationBackToCurrentPageLinkText,
            moveContentInlineOperationBackToCurrentPageTitleText,
            moveContentInlineOperationBackToCurrentPageTitleText,
            this.originalAddress,
            false,
            ""));
    setActionExtraData(userSessionKey, "refreshToolbarAndMenu", "" + true);
    setActionExtraData(userSessionKey, "repositoryId", "" + this.repositoryId);
    setActionExtraData(userSessionKey, "contentId", "" + newParentContentId);
    setActionExtraData(userSessionKey, "unrefreshedContentId", "" + parentContentId);
    setActionExtraData(userSessionKey, "unrefreshedNodeId", "" + parentContentId);
    setActionExtraData(userSessionKey, "changeTypeId", "" + this.changeTypeId);

    if (this.newParentContentId == null) {
      this.repositories =
          RepositoryController.getController()
              .getAuthorizedRepositoryVOList(this.getInfoGluePrincipal(), false);
      return "chooseDestinationV3";
    }

    ceb.throwIfNotEmpty();

    try {
      if (this.qualifyerXML != null && this.qualifyerXML.length() != 0) {
        Document document = new DOMBuilder().getDocument(this.qualifyerXML);
        List contents = parseContentsFromXML(this.qualifyerXML);
        Iterator i = contents.iterator();
        while (i.hasNext()) {
          ContentVO contentVO = (ContentVO) i.next();
          try {
            ContentControllerProxy.getController()
                .acMoveContent(this.getInfoGluePrincipal(), contentVO, this.newParentContentId);
          } catch (Exception e) {
            this.errorsOccurred = true;
          }
        }
      }
    } catch (Exception e) {
      e.printStackTrace();
    }

    this.topContentId =
        ContentController.getContentController()
            .getRootContentVO(this.repositoryId, this.getInfoGluePrincipal().getName())
            .getContentId();

    if (this.returnAddress != null && !this.returnAddress.equals("")) {
      String arguments = "userSessionKey=" + userSessionKey + "&isAutomaticRedirect=false";
      String messageUrl = returnAddress + (returnAddress.indexOf("?") > -1 ? "&" : "?") + arguments;

      this.getResponse().sendRedirect(messageUrl);
      return NONE;
    } else {
      return "successV3";
    }
  }
Exemplo n.º 5
0
  public String doExecute() throws Exception {
    userSessionKey = "" + System.currentTimeMillis();

    String copyContentInlineOperationDoneHeader =
        getLocalizedString(getLocale(), "tool.contenttool.copyContentsInlineOperationDoneHeader");
    String copyContentInlineOperationBackToCurrentPageLinkText =
        getLocalizedString(
            getLocale(),
            "tool.contenttool.copyContentsInlineOperationBackToCurrentContentLinkText");
    String copyContentInlineOperationBackToCurrentPageTitleText =
        getLocalizedString(
            getLocale(),
            "tool.contenttool.copyContentsInlineOperationBackToCurrentContentTitleText");

    setActionMessage(userSessionKey, copyContentInlineOperationDoneHeader);
    addActionLink(
        userSessionKey,
        new LinkBean(
            "currentPageUrl",
            copyContentInlineOperationBackToCurrentPageLinkText,
            copyContentInlineOperationBackToCurrentPageTitleText,
            copyContentInlineOperationBackToCurrentPageTitleText,
            this.originalAddress,
            false,
            ""));
    setActionExtraData(userSessionKey, "refreshToolbarAndMenu", "" + true);
    setActionExtraData(userSessionKey, "repositoryId", "" + this.repositoryId);
    setActionExtraData(userSessionKey, "contentId", "" + newParentContentId);
    setActionExtraData(userSessionKey, "unrefreshedContentId", "" + newParentContentId);
    setActionExtraData(userSessionKey, "unrefreshedNodeId", "" + newParentContentId);
    setActionExtraData(userSessionKey, "changeTypeId", "" + 3);
    setActionExtraData(
        userSessionKey,
        "confirmationMessage",
        getLocalizedString(
            getLocale(),
            "tool.contenttool.contentCopied.confirmation",
            getContentVO(newParentContentId).getName()));

    if (this.newParentContentId == null) {
      this.repositories =
          RepositoryController.getController()
              .getAuthorizedRepositoryVOList(this.getInfoGluePrincipal(), false);
      return "input";
    }

    ContentControllerProxy.getController()
        .acCopyContent(
            this.getInfoGluePrincipal(),
            contentId,
            newParentContentId,
            maxAssetSize,
            onlyLatestVersions);

    if (this.returnAddress != null && !this.returnAddress.equals("")) {
      String arguments = "userSessionKey=" + userSessionKey + "&isAutomaticRedirect=false";
      String messageUrl = returnAddress + (returnAddress.indexOf("?") > -1 ? "&" : "?") + arguments;

      this.getResponse().sendRedirect(messageUrl);
      return NONE;
    } else {
      return "success";
    }
  }