Example usage for com.liferay.portal.kernel.security.permission.resource ModelResourcePermissionFactory create

List of usage examples for com.liferay.portal.kernel.security.permission.resource ModelResourcePermissionFactory create

Introduction

In this page you can find the example usage for com.liferay.portal.kernel.security.permission.resource ModelResourcePermissionFactory create.

Prototype

public static <T extends GroupedModel> ModelResourcePermission<T> create(Class<T> modelClass,
            ToLongFunction<T> primKeyToLongFunction,
            UnsafeFunction<Long, T, ? extends PortalException> getModelUnsafeFunction,
            PortletResourcePermission portletResourcePermission,
            ModelResourcePermissionConfigurator<T> modelResourcePermissionConfigurator,
            UnaryOperator<String> actionIdMapper) 

Source Link

Usage

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));
                        }/*  w  w w  .  j a v  a2s. c  o  m*/
                    }, actionId -> {
                        if (ActionKeys.ADD_FOLDER.equals(actionId)) {
                            return ActionKeys.ADD_SUBFOLDER;
                        }

                        return actionId;
                    }),
            properties);
}