@Override
  public boolean hasPermission(
      PermissionChecker permissionChecker,
      String entryClassName,
      long entryClassPK,
      String actionId)
      throws Exception {

    return DLFileEntryPermission.contains(permissionChecker, entryClassPK, ActionKeys.VIEW);
  }
  protected List<DocLibFileEntry> findViewableDocuments() {
    List<DocLibFileEntry> viewableDocuments = new ArrayList<DocLibFileEntry>();

    try {
      long folderGroupId = dlFolder.getGroupId();
      long folderId = dlFolder.getFolderId();

      List<DLFileEntry> dlFileEntries = null;

      if (DLFolderPermission.contains(
          permissionChecker, folderGroupId, folderId, ActionKeys.VIEW)) {
        OrderByComparator orderByComparator =
            DocumentComparatorFactory.getComparator(getSortColumn(), isSortAscending());

        dlFileEntries =
            DLFileEntryServiceUtil.getFileEntries(
                folderGroupId, folderId, QueryUtil.ALL_POS, QueryUtil.ALL_POS, orderByComparator);
      }

      if (dlFileEntries != null) {

        for (DLFileEntry dlFileEntry : dlFileEntries) {
          boolean permittedToViewDocument = false;

          try {
            permittedToViewDocument =
                DLFileEntryPermission.contains(permissionChecker, dlFileEntry, ActionKeys.VIEW);
          } catch (Exception e) {
            logger.error(e.getMessage(), e);
          }

          viewableDocuments.add(
              new DocLibFileEntry(
                  dlFileEntry, portalURL, pathContext, folderGroupId, permittedToViewDocument));
        }
      }
    } catch (Exception e) {
      logger.error(e.getMessage(), e);
    }

    return viewableDocuments;
  }
  public boolean isShowImageEditorAction() throws PortalException {
    if (_isShowImageEditorAction != null) {
      return _isShowImageEditorAction;
    }

    if (!isShowActions()) {
      _isShowImageEditorAction = false;
    } else if (!DLFileEntryPermission.contains(
            _themeDisplay.getPermissionChecker(), _fileEntry, ActionKeys.UPDATE)
        || (_fileEntry.isCheckedOut() && !_fileEntry.hasLock())) {

      _isShowImageEditorAction = false;
    } else if (!ArrayUtil.contains(
        PropsValues.DL_FILE_ENTRY_PREVIEW_IMAGE_MIME_TYPES, _fileEntry.getMimeType())) {

      _isShowImageEditorAction = false;
    } else {
      _isShowImageEditorAction = true;
    }

    return _isShowImageEditorAction;
  }
  @Override
  public boolean hasPermission(PermissionChecker permissionChecker, long classPK, String actionId)
      throws Exception {

    return DLFileEntryPermission.contains(permissionChecker, classPK, actionId);
  }
예제 #5
0
  @Override
  public String getRowCheckBox(boolean checked, boolean disabled, String primaryKey) {

    DLFileShortcut dlFileShortcut = null;
    FileEntry fileEntry = null;
    Folder folder = null;

    long entryId = GetterUtil.getLong(primaryKey);

    try {
      fileEntry = DLAppServiceUtil.getFileEntry(entryId);
    } catch (Exception e1) {
      if (e1 instanceof NoSuchFileEntryException || e1 instanceof NoSuchRepositoryEntryException) {

        try {
          dlFileShortcut = DLAppServiceUtil.getFileShortcut(entryId);
        } catch (Exception e2) {
          if (e2 instanceof NoSuchFileShortcutException) {
            try {
              folder = DLAppServiceUtil.getFolder(entryId);
            } catch (Exception e3) {
              return StringPool.BLANK;
            }
          } else {
            return StringPool.BLANK;
          }
        }
      } else {
        return StringPool.BLANK;
      }
    }

    boolean showInput = false;

    String name = null;

    if (fileEntry != null) {
      name = FileEntry.class.getSimpleName();

      try {
        if (DLFileEntryPermission.contains(_permissionChecker, fileEntry, ActionKeys.DELETE)
            || DLFileEntryPermission.contains(_permissionChecker, fileEntry, ActionKeys.UPDATE)) {

          showInput = true;
        }
      } catch (Exception e) {
      }
    } else if (dlFileShortcut != null) {
      name = DLFileShortcut.class.getSimpleName();

      try {
        if (DLFileShortcutPermission.contains(_permissionChecker, dlFileShortcut, ActionKeys.DELETE)
            || DLFileShortcutPermission.contains(
                _permissionChecker, dlFileShortcut, ActionKeys.UPDATE)) {

          showInput = true;
        }
      } catch (Exception e) {
      }
    } else if (folder != null) {
      name = Folder.class.getSimpleName();

      try {
        if (DLFolderPermission.contains(_permissionChecker, folder, ActionKeys.DELETE)
            || DLFolderPermission.contains(_permissionChecker, folder, ActionKeys.UPDATE)) {

          showInput = true;
        }
      } catch (Exception e) {
      }
    }

    if (!showInput) {
      return StringPool.BLANK;
    }

    StringBundler sb = new StringBundler();

    sb.append("['");
    sb.append(_liferayPortletResponse.getNamespace());
    sb.append(RowChecker.ROW_IDS);
    sb.append(Folder.class.getSimpleName());
    sb.append("Checkbox', '");
    sb.append(_liferayPortletResponse.getNamespace());
    sb.append(RowChecker.ROW_IDS);
    sb.append(DLFileShortcut.class.getSimpleName());
    sb.append("Checkbox', '");
    sb.append(_liferayPortletResponse.getNamespace());
    sb.append(RowChecker.ROW_IDS);
    sb.append(FileEntry.class.getSimpleName());
    sb.append("Checkbox']");

    String checkBoxRowIds = sb.toString();

    return getRowCheckBox(
        checked,
        disabled,
        _liferayPortletResponse.getNamespace() + RowChecker.ROW_IDS + name + "Checkbox",
        primaryKey,
        checkBoxRowIds,
        "'#" + getAllRowIds() + "Checkbox'",
        _liferayPortletResponse.getNamespace() + "toggleActionsButton();");
  }
  @Override
  public boolean hasViewPermission(PermissionChecker permissionChecker) throws PortalException {

    return DLFileEntryPermission.contains(
        permissionChecker, _fileEntry.getFileEntryId(), ActionKeys.VIEW);
  }
  public boolean hasDeletePermission(PermissionChecker permissionChecker) throws PortalException {

    return DLFileEntryPermission.contains(
        permissionChecker, _fileEntry.getFileEntryId(), ActionKeys.DELETE);
  }
  protected SocialActivityFeedEntry doInterpret(SocialActivity activity, ThemeDisplay themeDisplay)
      throws Exception {

    PermissionChecker permissionChecker = themeDisplay.getPermissionChecker();

    DLFileEntry fileEntry = DLFileEntryLocalServiceUtil.getDLFileEntry(activity.getClassPK());

    if (!DLFileEntryPermission.contains(permissionChecker, fileEntry, ActionKeys.VIEW)) {

      return null;
    }

    String groupName = StringPool.BLANK;

    if (activity.getGroupId() != themeDisplay.getScopeGroupId()) {
      groupName = getGroupName(activity.getGroupId(), themeDisplay);
    }

    String creatorUserName = getUserName(activity.getUserId(), themeDisplay);

    int activityType = activity.getType();

    // Link

    String link =
        themeDisplay.getPortalURL()
            + themeDisplay.getPathMain()
            + "/document_library/get_file?groupId="
            + fileEntry.getGroupId()
            + "&folderId="
            + fileEntry.getFolderId()
            + "&name="
            + fileEntry.getName();

    // Title

    String titlePattern = null;

    if (activityType == DLActivityKeys.ADD_FILE_ENTRY) {
      titlePattern = "activity-document-library-add-file";
    } else if (activityType == DLActivityKeys.UPDATE_FILE_ENTRY) {
      titlePattern = "activity-document-library-update-file";
    }

    if (Validator.isNotNull(groupName)) {
      titlePattern += "-in";
    }

    String fileTitle = wrapLink(link, HtmlUtil.escape(cleanContent(fileEntry.getTitle())));

    Object[] titleArguments = new Object[] {groupName, creatorUserName, fileTitle};

    String title = themeDisplay.translate(titlePattern, titleArguments);

    // Body

    StringBundler sb = new StringBundler(3);

    String fileEntryLink =
        themeDisplay.getPortalURL()
            + themeDisplay.getPathMain()
            + "/document_library/find_file_entry?fileEntryId="
            + fileEntry.getFileEntryId();

    sb.append(wrapLink(fileEntryLink, "view-document", themeDisplay));
    sb.append(StringPool.SPACE);

    String folderLink =
        themeDisplay.getPortalURL()
            + themeDisplay.getPathMain()
            + "/document_library/find_folder?groupId="
            + fileEntry.getGroupId()
            + "&folderId="
            + fileEntry.getFolderId();

    sb.append(wrapLink(folderLink, "go-to-folder", themeDisplay));

    String body = sb.toString();

    return new SocialActivityFeedEntry(link, title, body);
  }