Example usage for com.liferay.portal.kernel.repository.model Folder containsPermission

List of usage examples for com.liferay.portal.kernel.repository.model Folder containsPermission

Introduction

In this page you can find the example usage for com.liferay.portal.kernel.repository.model Folder containsPermission.

Prototype

public boolean containsPermission(PermissionChecker permissionChecker, String actionId) throws PortalException;

Source Link

Usage

From source file:au.com.permeance.liferay.portlet.documentlibrary.action.DownloadFolderZipAction.java

License:Open Source License

protected void downloadFolder(ResourceRequest resourceRequest, ResourceResponse resourceResponse)
        throws Exception {

    ThemeDisplay themeDisplay = (ThemeDisplay) resourceRequest.getAttribute(WebKeys.THEME_DISPLAY);
    long groupId = themeDisplay.getScopeGroupId();
    long repositoryId = ParamUtil.getLong(resourceRequest, "repositoryId");
    long folderId = ParamUtil.getLong(resourceRequest, "folderId");
    Folder folder = DLAppServiceUtil.getFolder(folderId);
    ServiceContext serviceContext = ServiceContextFactory.getInstance(Folder.class.getName(), resourceRequest);

    PermissionChecker permissionChecker = PermissionThreadLocal.getPermissionChecker();

    if (!folder.containsPermission(permissionChecker, ActionKeys.VIEW)) {
        throw new PrincipalException();
    }/*w ww .j av a  2  s  .c  o  m*/

    File tempZipFile = null;

    try {

        tempZipFile = createTempZipFile();
        DLFolderExportZipServiceUtil.exportFolderToZipFile(groupId, repositoryId, folderId, serviceContext,
                tempZipFile);
        String downloadZipFileName = folder.getName() + ZIP_FILE_EXT;
        sendZipFile(resourceRequest, resourceResponse, tempZipFile, downloadZipFileName);

    } catch (Exception e) {

        String msg = "Error downloading folder " + folderId + " from repository " + repositoryId + " : "
                + e.getMessage();

        s_log.error(msg, e);

        throw new PortalException(msg, e);

    } finally {

        safeDeleteFile(tempZipFile);
        tempZipFile = null;

    }
}

From source file:au.com.permeance.liferay.portlet.documentlibrary.action.FolderInfoAction.java

License:Open Source License

protected DLFolderInfo buildFolderInfo(RenderRequest renderRequest, RenderResponse renderResponse)
        throws Exception {

    ThemeDisplay themeDisplay = (ThemeDisplay) renderRequest.getAttribute(WebKeys.THEME_DISPLAY);
    long groupId = ParamUtil.getLong(renderRequest, "groupId");
    long scopeGroupId = themeDisplay.getScopeGroupId();
    String scopeGroupName = themeDisplay.getScopeGroupName();
    long repositoryId = ParamUtil.getLong(renderRequest, "repositoryId");
    long folderId = ParamUtil.getLong(renderRequest, "folderId");
    Folder folder = DLAppServiceUtil.getFolder(folderId);
    ServiceContext serviceContext = ServiceContextFactory.getInstance(Folder.class.getName(), renderRequest);

    if (s_log.isDebugEnabled()) {
        s_log.debug("building folder info ...");
        ParamUtil.print(renderRequest);/*  w  ww . j  a va 2  s  .  com*/
        s_log.debug("groupId: " + groupId);
        s_log.debug("scopeGroupId: " + scopeGroupId);
        s_log.debug("scopeGroupName: " + scopeGroupName);
        s_log.debug("repositoryId: " + repositoryId);
        s_log.debug("folderId: " + folderId);
    }

    PermissionChecker permissionChecker = PermissionThreadLocal.getPermissionChecker();

    if (!folder.containsPermission(permissionChecker, ActionKeys.VIEW)) {
        throw new PrincipalException();
    }

    DLFolderInfo folderInfo = new DLFolderInfo();

    try {

        User user = UserServiceUtil.getUserById(folder.getUserId());

        DLFolderUsage folderUsage = DLFolderUsageServiceUtil.calculateFolderUsage(repositoryId, folderId,
                serviceContext);

        folderInfo.setFolderId(folderId);
        folderInfo.setFolderName(folder.getName());
        folderInfo.setFolderCreateDate(folder.getCreateDate());
        folderInfo.setFolderDescription(folder.getDescription());
        folderInfo.setFolderPath(buildPath(folder));
        folderInfo.setFolderUsage(folderUsage);
        folderInfo.setFolderUserId(folder.getUserId());

        if (user != null) {
            folderInfo.setFolderUserFullName(user.getFullName());
        }

        folderInfo.setRepositoryId(repositoryId);

        Repository repository = null;
        if (repositoryId != scopeGroupId) {
            repository = RepositoryServiceUtil.getRepository(repositoryId);
            if (repository != null) {
                folderInfo.setRepositoryName(repository.getName());
                folderInfo.setRepositoryClassName(repository.getClassName());
                folderInfo.setRepositoryDescription(repository.getDescription());
            }
        }

    } catch (Exception e) {

        String msg = "Error building information for folder " + folderId + " in repository " + repositoryId
                + " : " + e.getMessage();

        s_log.error(msg, e);

        throw new PortalException(msg, e);

    } finally {

        // placeholder

    }

    return folderInfo;
}

From source file:com.liferay.portlet.documentlibrary.service.permission.DLFolderPermission.java

License:Open Source License

public static void check(PermissionChecker permissionChecker, Folder folder, String actionId)
        throws PortalException, SystemException {

    if (!folder.containsPermission(permissionChecker, actionId)) {
        throw new PrincipalException();
    }/*from   w  ww .  j  a  v a 2 s .com*/
}

From source file:com.liferay.portlet.documentlibrary.service.permission.DLFolderPermission.java

License:Open Source License

public static boolean contains(PermissionChecker permissionChecker, Folder folder, String actionId)
        throws PortalException, SystemException {

    return folder.containsPermission(permissionChecker, actionId);
}

From source file:com.liferay.portlet.documentlibrary.service.permission.DLFolderPermission.java

License:Open Source License

public static boolean contains(PermissionChecker permissionChecker, long groupId, long folderId,
        String actionId) throws PortalException, SystemException {

    if (folderId == DLFolderConstants.DEFAULT_PARENT_FOLDER_ID) {

        // Prevent the propagation of checks for actions that are not
        // supported at the application resource level. See LPS-24245.

        if (actionId.equals(ActionKeys.ACCESS) || actionId.equals(ActionKeys.ADD_SUBFOLDER)
                || actionId.equals(ActionKeys.DELETE)) {

            return false;
        }//ww  w  . ja v  a  2s  .  com

        return DLPermission.contains(permissionChecker, groupId, actionId);
    } else {
        Folder folder = DLAppLocalServiceUtil.getFolder(folderId);

        return folder.containsPermission(permissionChecker, actionId);
    }
}

From source file:com.rivetlogic.tree.view.service.impl.EnhancedDLAppServiceImpl.java

License:Open Source License

public List<Object> getFoldersAndFileEntriesAndFileShortcuts(long repositoryId, long folderId, int status,
        boolean includeMountFolders, int start, int end) throws PortalException, SystemException {

    List<Object> items = DLAppServiceUtil.getFoldersAndFileEntriesAndFileShortcuts(repositoryId, folderId,
            status, includeMountFolders, start, end);

    List<Object> results = new ArrayList<Object>();

    for (Object o : items) {

        if (o instanceof Folder) {
            Folder folder = (Folder) o;
            DLFolder dlFolder = new DLFolder(folder);
            dlFolder.setDeletePermission(folder.containsPermission(getPermissionChecker(), ActionKeys.DELETE));
            dlFolder.setUpdatePermission(folder.containsPermission(getPermissionChecker(), ActionKeys.UPDATE));
            results.add(dlFolder);/*  w w  w  .  j a  v  a  2s . c  o  m*/
        }
        if (o instanceof FileEntry) {
            FileEntry fileEntry = (FileEntry) o;
            DLFileEntry dlFileEntry = new DLFileEntry(fileEntry);
            dlFileEntry.setDeletePermission(
                    fileEntry.containsPermission(getPermissionChecker(), ActionKeys.DELETE));
            dlFileEntry.setUpdatePermission(
                    fileEntry.containsPermission(getPermissionChecker(), ActionKeys.UPDATE));
            dlFileEntry.setPreviewFileURL(getThumbnailURL(fileEntry, null, dlFileEntry));
            results.add(dlFileEntry);
        }
        if (o instanceof DLFileShortcut) {
            DLFileShortcut dLFileShortcut = (DLFileShortcut) o;
            FileEntry fileEntry = DLAppServiceUtil.getFileEntry(dLFileShortcut.getToFileEntryId());
            DLFileEntry dlFileEntry = new DLFileEntry(fileEntry);
            dlFileEntry.setDeletePermission(
                    fileEntry.containsPermission(getPermissionChecker(), ActionKeys.DELETE));
            dlFileEntry.setUpdatePermission(
                    fileEntry.containsPermission(getPermissionChecker(), ActionKeys.UPDATE));
            dlFileEntry.setShortcut(true);
            dlFileEntry.setRowCheckerName(DLFileShortcut.class.getSimpleName());
            dlFileEntry.setRowCheckerId(String.valueOf(dLFileShortcut.getFileShortcutId()));
            dlFileEntry.setPreviewFileURL(getThumbnailURL(fileEntry, dLFileShortcut, dlFileEntry));
            results.add(dlFileEntry);
        }
    }
    return results;
}