List of usage examples for com.liferay.portal.kernel.security.permission ActionKeys ADD_SUBFOLDER
String ADD_SUBFOLDER
To view the source code for com.liferay.portal.kernel.security.permission ActionKeys ADD_SUBFOLDER.
Click Source Link
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); }