Example usage for com.liferay.portal.kernel.security.permission ActionKeys ADD_SUBFOLDER

List of usage examples for com.liferay.portal.kernel.security.permission ActionKeys ADD_SUBFOLDER

Introduction

In this page you can find the example usage for com.liferay.portal.kernel.security.permission ActionKeys ADD_SUBFOLDER.

Prototype

String ADD_SUBFOLDER

To view the source code for com.liferay.portal.kernel.security.permission ActionKeys ADD_SUBFOLDER.

Click 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));
                        }/*from w w w .j  a 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.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  2  s  .c  om

    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.bookmarks.service.test.BookmarksFolderLocalServiceTest.java

License:Open Source License

@Test
public void testAddSubfolderPermission() throws Exception {
    BookmarksFolder folder = BookmarksTestUtil.addFolder(_group.getGroupId(), RandomTestUtil.randomString());

    ServiceContext serviceContext = ServiceContextTestUtil.getServiceContext(_group.getGroupId());

    Role role = RoleLocalServiceUtil.addRole(TestPropsValues.getUserId(), null, 0, StringUtil.randomString(),
            null, null, RoleConstants.TYPE_SITE, null, serviceContext);

    ResourceBlockServiceUtil.addCompanyScopePermission(_group.getGroupId(), _group.getCompanyId(),
            BookmarksFolder.class.getName(), role.getRoleId(), ActionKeys.ADD_SUBFOLDER);

    User user = UserTestUtil.addGroupUser(_group, role.getName());

    PermissionChecker permissionChecker = PermissionCheckerFactoryUtil.create(user);

    Assert.assertTrue(BookmarksFolderPermissionChecker.contains(permissionChecker, _group.getGroupId(),
            folder.getFolderId(), ActionKeys.ADD_FOLDER));
}

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;
    }//from   w  w  w.  ja  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);
}