Example usage for com.liferay.portal.util PropsValues PERMISSIONS_VIEW_DYNAMIC_INHERITANCE

List of usage examples for com.liferay.portal.util PropsValues PERMISSIONS_VIEW_DYNAMIC_INHERITANCE

Introduction

In this page you can find the example usage for com.liferay.portal.util PropsValues PERMISSIONS_VIEW_DYNAMIC_INHERITANCE.

Prototype

boolean PERMISSIONS_VIEW_DYNAMIC_INHERITANCE

To view the source code for com.liferay.portal.util PropsValues PERMISSIONS_VIEW_DYNAMIC_INHERITANCE.

Click Source Link

Usage

From source file:com.liferay.bookmarks.internal.security.permission.resource.BookmarksEntryModelResourcePermissionRegistrar.java

License:Open Source License

@Activate
public void activate(BundleContext bundleContext) {
    Dictionary<String, Object> properties = new HashMapDictionary<>();

    properties.put("model.class.name", BookmarksEntry.class.getName());

    _serviceRegistration = bundleContext.registerService(ModelResourcePermission.class,
            ModelResourcePermissionFactory.create(BookmarksEntry.class, BookmarksEntry::getEntryId,
                    _bookmarksEntryLocalService::getEntry, _portletResourcePermission,
                    (modelResourcePermission, consumer) -> {
                        consumer.accept(new StagedModelPermissionLogic<>(_stagingPermission,
                                BookmarksPortletKeys.BOOKMARKS, BookmarksEntry::getEntryId));

                        if (PropsValues.PERMISSIONS_VIEW_DYNAMIC_INHERITANCE) {
                            consumer.accept(new DynamicInheritancePermissionLogic<>(
                                    _bookmarksFolderModelResourcePermission, _getFetchParentFunction(), true));
                        }//ww w  .j a va 2 s  .  c om
                    }),
            properties);
}

From source file:com.liferay.bookmarks.internal.security.permission.resource.BookmarksFolderModelResourcePermissionRegistrar.java

License:Open Source License

@Activate
public void activate(BundleContext bundleContext) {
    Dictionary<String, Object> properties = new HashMapDictionary<>();

    properties.put("model.class.name", BookmarksFolder.class.getName());

    _serviceRegistration = bundleContext.registerService(ModelResourcePermission.class,
            ModelResourcePermissionFactory.create(BookmarksFolder.class, BookmarksFolder::getFolderId,
                    _bookmarksFolderLocalService::getFolder, _portletResourcePermission,
                    (modelResourcePermission, consumer) -> {
                        consumer.accept(new StagedModelPermissionLogic<>(_stagingPermission,
                                BookmarksPortletKeys.BOOKMARKS, BookmarksFolder::getFolderId));

                        if (PropsValues.PERMISSIONS_VIEW_DYNAMIC_INHERITANCE) {
                            consumer.accept(new DynamicInheritancePermissionLogic<>(modelResourcePermission,
                                    _getFetchParentFunction(), true));
                        }/*ww  w .  ja  v a 2 s.co  m*/
                    }, actionId -> {
                        if (ActionKeys.ADD_FOLDER.equals(actionId)) {
                            return ActionKeys.ADD_SUBFOLDER;
                        }

                        return actionId;
                    }),
            properties);
}

From source file:com.liferay.bookmarks.service.permission.BookmarksEntryPermissionChecker.java

License:Open Source License

public static boolean contains(PermissionChecker permissionChecker, BookmarksEntry entry, String actionId)
        throws PortalException {

    Boolean hasPermission = StagingPermissionUtil.hasPermission(permissionChecker, entry.getGroupId(),
            BookmarksEntry.class.getName(), entry.getEntryId(), BookmarksPortletKeys.BOOKMARKS, actionId);

    if (hasPermission != null) {
        return hasPermission.booleanValue();
    }//from  w  ww . j  av a2  s .  co  m

    if (actionId.equals(ActionKeys.VIEW) && PropsValues.PERMISSIONS_VIEW_DYNAMIC_INHERITANCE) {

        long folderId = entry.getFolderId();

        if (folderId == BookmarksFolderConstants.DEFAULT_PARENT_FOLDER_ID) {
            if (!BookmarksResourcePermissionChecker.contains(permissionChecker, entry.getGroupId(), actionId)) {

                return false;
            }
        } else {
            try {
                BookmarksFolder folder = _bookmarksFolderLocalService.getFolder(folderId);

                if (!BookmarksFolderPermissionChecker.contains(permissionChecker, folder, ActionKeys.ACCESS)
                        && !BookmarksFolderPermissionChecker.contains(permissionChecker, folder,
                                ActionKeys.VIEW)) {

                    return false;
                }
            } catch (NoSuchFolderException nsfe) {
                if (!entry.isInTrash()) {
                    throw nsfe;
                }
            }
        }
    }

    if (permissionChecker.hasOwnerPermission(entry.getCompanyId(), BookmarksEntry.class.getName(),
            entry.getEntryId(), entry.getUserId(), actionId)) {

        return true;
    }

    return permissionChecker.hasPermission(entry.getGroupId(), BookmarksEntry.class.getName(),
            entry.getEntryId(), actionId);
}

From source file:com.liferay.bookmarks.service.permission.BookmarksFolderPermissionChecker.java

License:Open Source License

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

    if (actionId.equals(ActionKeys.ADD_FOLDER)) {
        actionId = ActionKeys.ADD_SUBFOLDER;
    }/*from  w w  w.  j av  a 2s .c o  m*/

    Boolean hasPermission = StagingPermissionUtil.hasPermission(permissionChecker, folder.getGroupId(),
            BookmarksFolder.class.getName(), folder.getFolderId(), BookmarksPortletKeys.BOOKMARKS, actionId);

    if (hasPermission != null) {
        return hasPermission.booleanValue();
    }

    if (actionId.equals(ActionKeys.VIEW) && PropsValues.PERMISSIONS_VIEW_DYNAMIC_INHERITANCE) {

        try {
            long folderId = folder.getFolderId();

            while (folderId != BookmarksFolderConstants.DEFAULT_PARENT_FOLDER_ID) {

                folder = _bookmarksFolderLocalService.getFolder(folderId);

                if (!_hasPermission(permissionChecker, folder, actionId)) {
                    return false;
                }

                folderId = folder.getParentFolderId();
            }
        } catch (NoSuchFolderException nsfe) {
            if (!folder.isInTrash()) {
                throw nsfe;
            }
        }

        return BookmarksResourcePermissionChecker.contains(permissionChecker, folder.getGroupId(), actionId);
    }

    return _hasPermission(permissionChecker, folder, actionId);
}

From source file:com.liferay.journal.service.permission.JournalArticlePermission.java

License:Open Source License

private static boolean _contains(PermissionChecker permissionChecker, JournalArticle article, String actionId) {

    String portletId = PortletProviderUtil.getPortletId(JournalArticle.class.getName(),
            PortletProvider.Action.EDIT);

    Boolean hasPermission = StagingPermissionUtil.hasPermission(permissionChecker, article.getGroupId(),
            JournalArticle.class.getName(), article.getResourcePrimKey(), portletId, actionId);

    if (hasPermission != null) {
        return hasPermission.booleanValue();
    }//from w  ww  .  j  ava 2 s  .  c  om

    if (article.isDraft()) {
        if (actionId.equals(ActionKeys.VIEW) && !contains(permissionChecker, article, ActionKeys.UPDATE)) {

            return false;
        }
    } else if (article.isPending()) {
        hasPermission = WorkflowPermissionUtil.hasPermission(permissionChecker, article.getGroupId(),
                JournalArticle.class.getName(), article.getResourcePrimKey(), actionId);

        if (hasPermission != null) {
            return hasPermission.booleanValue();
        }
    }

    if (actionId.equals(ActionKeys.VIEW)) {
        JournalServiceConfiguration journalServiceConfiguration = null;

        try {
            journalServiceConfiguration = _configurationProvider.getCompanyConfiguration(
                    JournalServiceConfiguration.class, permissionChecker.getCompanyId());
        } catch (ConfigurationException ce) {
            _log.error("Unable to get journal service configuration for company "
                    + permissionChecker.getCompanyId(), ce);

            return false;
        }

        if (!journalServiceConfiguration.articleViewPermissionsCheckEnabled()) {

            return true;
        }

        if (PropsValues.PERMISSIONS_VIEW_DYNAMIC_INHERITANCE) {
            long folderId = article.getFolderId();

            if (folderId == JournalFolderConstants.DEFAULT_PARENT_FOLDER_ID) {

                if (!JournalPermission.contains(permissionChecker, article.getGroupId(), actionId)) {

                    return false;
                }
            } else {
                JournalFolder folder = _journalFolderLocalService.fetchFolder(folderId);

                if (folder != null) {
                    if (!JournalFolderPermission.contains(permissionChecker, folder, ActionKeys.ACCESS)
                            && !JournalFolderPermission.contains(permissionChecker, folder, ActionKeys.VIEW)) {

                        return false;
                    }
                } else {
                    if (!article.isInTrash()) {
                        _log.error("Unable to get journal folder " + folderId);

                        return false;
                    }
                }
            }
        }
    }

    if (permissionChecker.hasOwnerPermission(article.getCompanyId(), JournalArticle.class.getName(),
            article.getResourcePrimKey(), article.getUserId(), actionId)) {

        return true;
    }

    return permissionChecker.hasPermission(article.getGroupId(), JournalArticle.class.getName(),
            article.getResourcePrimKey(), actionId);
}

From source file:com.liferay.journal.service.permission.JournalFolderPermission.java

License:Open Source License

public static boolean contains(PermissionChecker permissionChecker, JournalFolder folder, String actionId) {

    String portletId = PortletProviderUtil.getPortletId(JournalArticle.class.getName(),
            PortletProvider.Action.EDIT);

    if (actionId.equals(ActionKeys.ADD_FOLDER)) {
        actionId = ActionKeys.ADD_SUBFOLDER;
    }// w w w .j  a  v a  2  s  .  c o  m

    Boolean hasPermission = StagingPermissionUtil.hasPermission(permissionChecker, folder.getGroupId(),
            JournalFolder.class.getName(), folder.getFolderId(), portletId, actionId);

    if (hasPermission != null) {
        return hasPermission.booleanValue();
    }

    if (actionId.equals(ActionKeys.VIEW) && PropsValues.PERMISSIONS_VIEW_DYNAMIC_INHERITANCE) {

        long folderId = folder.getFolderId();

        while (folderId != JournalFolderConstants.DEFAULT_PARENT_FOLDER_ID) {

            JournalFolder parentFolder = folder;

            folder = _journalFolderLocalService.fetchFolder(folderId);

            if (folder != null) {
                if (!_hasPermission(permissionChecker, folder, actionId)) {
                    return false;
                }
            } else {
                if (parentFolder.isInTrash()) {
                    folder = parentFolder;

                    break;
                } else {
                    _log.error("Unable to get journal folder " + folderId);

                    return false;
                }
            }

            folderId = folder.getParentFolderId();
        }

        return JournalPermission.contains(permissionChecker, folder.getGroupId(), actionId);
    }

    return _hasPermission(permissionChecker, folder, actionId);
}

From source file:com.liferay.message.boards.internal.service.permission.MBCategoryPermission.java

License:Open Source License

private boolean _contains(PermissionChecker permissionChecker, long groupId, long categoryId, String actionId)
        throws PortalException {

    if (_mbBanLocalService.hasBan(groupId, permissionChecker.getUserId())) {
        return false;
    }//from w w  w  . java 2s  . c o  m

    if ((categoryId == MBCategoryConstants.DEFAULT_PARENT_CATEGORY_ID)
            || (categoryId == MBCategoryConstants.DISCUSSION_CATEGORY_ID)) {

        return MBPermission.contains(permissionChecker, groupId, actionId);
    }

    MBCategory category = _mbCategoryLocalService.getCategory(categoryId);

    if (actionId.equals(ActionKeys.ADD_CATEGORY)) {
        actionId = ActionKeys.ADD_SUBCATEGORY;
    }

    String portletId = PortletProviderUtil.getPortletId(MBCategory.class.getName(),
            PortletProvider.Action.EDIT);

    Boolean hasPermission = _stagingPermission.hasPermission(permissionChecker, category.getGroupId(),
            MBCategory.class.getName(), category.getCategoryId(), portletId, actionId);

    if (hasPermission != null) {
        return hasPermission.booleanValue();
    }

    if (actionId.equals(ActionKeys.VIEW) && PropsValues.PERMISSIONS_VIEW_DYNAMIC_INHERITANCE) {

        try {
            while (categoryId != MBCategoryConstants.DEFAULT_PARENT_CATEGORY_ID) {

                category = _mbCategoryLocalService.getCategory(categoryId);

                if (!_hasPermission(permissionChecker, category, actionId)) {

                    return false;
                }

                categoryId = category.getParentCategoryId();
            }
        } catch (NoSuchCategoryException nsce) {
            if (!category.isInTrash()) {
                throw nsce;
            }
        }

        return MBPermission.contains(permissionChecker, category.getGroupId(), actionId);
    }

    return _hasPermission(permissionChecker, category, actionId);
}

From source file:com.liferay.message.boards.internal.service.permission.MBMessagePermission.java

License:Open Source License

private boolean _contains(PermissionChecker permissionChecker, MBMessage message, String actionId)
        throws PortalException {

    if (_mbBanLocalService.hasBan(message.getGroupId(), permissionChecker.getUserId())) {

        return false;
    }/*  ww  w. j  a v a2s  .  co m*/

    String portletId = PortletProviderUtil.getPortletId(MBMessage.class.getName(), PortletProvider.Action.EDIT);

    Boolean hasPermission = _stagingPermission.hasPermission(permissionChecker, message.getGroupId(),
            MBMessage.class.getName(), message.getMessageId(), portletId, actionId);

    if (hasPermission != null) {
        return hasPermission.booleanValue();
    }

    if (message.isDraft() || message.isScheduled()) {
        if (actionId.equals(ActionKeys.VIEW) && !_contains(permissionChecker, message, ActionKeys.UPDATE)) {

            return false;
        }
    } else if (message.isPending()) {
        hasPermission = WorkflowPermissionUtil.hasPermission(permissionChecker, message.getGroupId(),
                message.getWorkflowClassName(), message.getMessageId(), actionId);

        if (hasPermission != null) {
            return hasPermission.booleanValue();
        }
    }

    if (actionId.equals(ActionKeys.VIEW) && PropsValues.PERMISSIONS_VIEW_DYNAMIC_INHERITANCE) {

        long categoryId = message.getCategoryId();

        if ((categoryId == MBCategoryConstants.DEFAULT_PARENT_CATEGORY_ID)
                || (categoryId == MBCategoryConstants.DISCUSSION_CATEGORY_ID)) {

            if (!MBPermission.contains(permissionChecker, message.getGroupId(), actionId)) {

                return false;
            }
        } else {
            try {
                MBCategory category = _mbCategoryLocalService.getCategory(categoryId);

                if (!MBCategoryPermission.contains(permissionChecker, category, actionId)) {

                    return false;
                }
            } catch (NoSuchCategoryException nsce) {
                if (!message.isInTrash()) {
                    throw nsce;
                }
            }
        }
    }

    if (permissionChecker.hasOwnerPermission(message.getCompanyId(), MBMessage.class.getName(),
            message.getRootMessageId(), message.getUserId(), actionId)) {

        return true;
    }

    if (!permissionChecker.hasPermission(message.getGroupId(), MBMessage.class.getName(),
            message.getMessageId(), actionId)) {

        return false;
    }

    if (message.isRoot() || !actionId.equals(ActionKeys.VIEW)) {
        return true;
    }

    return _contains(permissionChecker, _mbMessageLocalService.getMessage(message.getParentMessageId()),
            actionId);
}

From source file:com.liferay.portlet.bookmarks.service.permission.BookmarksEntryPermission.java

License:Open Source License

public static boolean contains(PermissionChecker permissionChecker, BookmarksEntry entry, String actionId)
        throws PortalException, SystemException {

    if (PropsValues.PERMISSIONS_VIEW_DYNAMIC_INHERITANCE) {
        if (entry.getFolderId() != BookmarksFolderConstants.DEFAULT_PARENT_FOLDER_ID) {

            BookmarksFolder folder = entry.getFolder();

            if (!BookmarksFolderPermission.contains(permissionChecker, folder, ActionKeys.ACCESS)
                    && !BookmarksFolderPermission.contains(permissionChecker, folder, ActionKeys.VIEW)) {

                return false;
            }//from   w  ww  .  jav a  2 s . c o m
        }
    }

    if (permissionChecker.hasOwnerPermission(entry.getCompanyId(), BookmarksEntry.class.getName(),
            entry.getEntryId(), entry.getUserId(), actionId)) {

        return true;
    }

    return permissionChecker.hasPermission(entry.getGroupId(), BookmarksEntry.class.getName(),
            entry.getEntryId(), actionId);
}

From source file:com.liferay.portlet.bookmarks.service.permission.BookmarksFolderPermission.java

License:Open Source License

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

    if (actionId.equals(ActionKeys.ADD_FOLDER)) {
        actionId = ActionKeys.ADD_SUBFOLDER;
    }//from w  ww.j a  v  a  2s .  c o  m

    long folderId = folder.getFolderId();

    if (actionId.equals(ActionKeys.VIEW)) {
        while (folderId != BookmarksFolderConstants.DEFAULT_PARENT_FOLDER_ID) {

            folder = BookmarksFolderLocalServiceUtil.getFolder(folderId);

            folderId = folder.getParentFolderId();

            if (!permissionChecker.hasOwnerPermission(folder.getCompanyId(), BookmarksFolder.class.getName(),
                    folder.getFolderId(), folder.getUserId(), actionId)
                    && !permissionChecker.hasPermission(folder.getGroupId(), BookmarksFolder.class.getName(),
                            folder.getFolderId(), actionId)) {

                return false;
            }

            if (!PropsValues.PERMISSIONS_VIEW_DYNAMIC_INHERITANCE) {
                break;
            }
        }

        return true;
    } else {
        while (folderId != BookmarksFolderConstants.DEFAULT_PARENT_FOLDER_ID) {

            folder = BookmarksFolderLocalServiceUtil.getFolder(folderId);

            folderId = folder.getParentFolderId();

            if (permissionChecker.hasOwnerPermission(folder.getCompanyId(), BookmarksFolder.class.getName(),
                    folder.getFolderId(), folder.getUserId(), actionId)) {

                return true;
            }

            if (permissionChecker.hasPermission(folder.getGroupId(), BookmarksFolder.class.getName(),
                    folder.getFolderId(), actionId)) {

                return true;
            }

            if (actionId.equals(ActionKeys.VIEW)) {
                break;
            }
        }

        return false;
    }
}