Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. Project price only 1 $
You can buy this project and download/modify it how often you want.
/**
* Copyright (c) 2000-present Liferay, Inc. All rights reserved.
*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or (at your option)
* any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
* details.
*/
package com.liferay.portal.service.impl;
import com.liferay.petra.string.StringBundler;
import com.liferay.petra.string.StringPool;
import com.liferay.portal.kernel.bean.BeanReference;
import com.liferay.portal.kernel.dao.orm.ActionableDynamicQuery;
import com.liferay.portal.kernel.dao.orm.Property;
import com.liferay.portal.kernel.dao.orm.PropertyFactoryUtil;
import com.liferay.portal.kernel.exception.NoSuchResourceActionException;
import com.liferay.portal.kernel.exception.PortalException;
import com.liferay.portal.kernel.exception.SystemException;
import com.liferay.portal.kernel.log.Log;
import com.liferay.portal.kernel.log.LogFactoryUtil;
import com.liferay.portal.kernel.model.ResourceAction;
import com.liferay.portal.kernel.model.ResourceConstants;
import com.liferay.portal.kernel.model.ResourcePermission;
import com.liferay.portal.kernel.model.role.RoleConstants;
import com.liferay.portal.kernel.security.permission.ActionKeys;
import com.liferay.portal.kernel.security.permission.ResourceActionsUtil;
import com.liferay.portal.kernel.service.CompanyLocalService;
import com.liferay.portal.kernel.service.ResourcePermissionLocalService;
import com.liferay.portal.kernel.service.persistence.ResourcePermissionPersistence;
import com.liferay.portal.kernel.transaction.Propagation;
import com.liferay.portal.kernel.transaction.Transactional;
import com.liferay.portal.security.permission.PermissionCacheUtil;
import com.liferay.portal.service.base.ResourceActionLocalServiceBaseImpl;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
/**
* @author Brian Wing Shun Chan
* @author Shuyang Zhou
*/
public class ResourceActionLocalServiceImpl
extends ResourceActionLocalServiceBaseImpl {
@Override
public ResourceAction addResourceAction(
String name, String actionId, long bitwiseValue) {
ResourceAction resourceAction = resourceActionPersistence.fetchByN_A(
name, actionId);
if (resourceAction == null) {
long resourceActionId = counterLocalService.increment(
ResourceAction.class.getName());
resourceAction = resourceActionPersistence.create(resourceActionId);
resourceAction.setName(name);
resourceAction.setActionId(actionId);
resourceAction.setBitwiseValue(bitwiseValue);
resourceAction = resourceActionPersistence.update(resourceAction);
}
return resourceAction;
}
@Override
@Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
public void checkResourceActions() {
List resourceActions =
resourceActionPersistence.findAll();
for (ResourceAction resourceAction : resourceActions) {
String key = encodeKey(
resourceAction.getName(), resourceAction.getActionId());
_resourceActions.put(key, resourceAction);
}
}
@Override
public void checkResourceActions(String name, List actionIds) {
checkResourceActions(name, actionIds, false);
}
@Override
public void checkResourceActions(
String name, List actionIds, boolean addDefaultActions) {
synchronized (name.intern()) {
if ((actionIds.size() > Long.SIZE) ||
((actionIds.size() == Long.SIZE) &&
!actionIds.contains(ActionKeys.VIEW))) {
throw new SystemException(
"There are too many actions for resource " + name);
}
long availableBits = -2;
Map resourceActionsMap = null;
List