001
014
015 package com.liferay.portlet.mobiledevicerules.service.permission;
016
017 import com.liferay.portal.kernel.exception.PortalException;
018 import com.liferay.portal.kernel.exception.SystemException;
019 import com.liferay.portal.kernel.staging.permission.StagingPermissionUtil;
020 import com.liferay.portal.security.auth.PrincipalException;
021 import com.liferay.portal.security.permission.PermissionChecker;
022 import com.liferay.portal.util.PortletKeys;
023 import com.liferay.portlet.mobiledevicerules.model.MDRRuleGroupInstance;
024 import com.liferay.portlet.mobiledevicerules.service.MDRRuleGroupInstanceLocalServiceUtil;
025
026
029 public class MDRRuleGroupInstancePermissionImpl
030 implements MDRRuleGroupInstancePermission {
031
032 @Override
033 public void check(
034 PermissionChecker permissionChecker, long ruleGroupInstanceId,
035 String actionId)
036 throws PortalException, SystemException {
037
038 if (!contains(permissionChecker, ruleGroupInstanceId, actionId)) {
039 throw new PrincipalException();
040 }
041 }
042
043 @Override
044 public void check(
045 PermissionChecker permissionChecker,
046 MDRRuleGroupInstance ruleGroupInstance, String actionId)
047 throws PortalException {
048
049 if (!contains(permissionChecker, ruleGroupInstance, actionId)) {
050 throw new PrincipalException();
051 }
052 }
053
054 @Override
055 public boolean contains(
056 PermissionChecker permissionChecker, long ruleGroupInstanceId,
057 String actionId)
058 throws PortalException, SystemException {
059
060 MDRRuleGroupInstance ruleGroupInstance =
061 MDRRuleGroupInstanceLocalServiceUtil.getMDRRuleGroupInstance(
062 ruleGroupInstanceId);
063
064 return contains(permissionChecker, ruleGroupInstance, actionId);
065 }
066
067 @Override
068 public boolean contains(
069 PermissionChecker permissionChecker,
070 MDRRuleGroupInstance ruleGroupInstance, String actionId) {
071
072 Boolean hasPermission = StagingPermissionUtil.hasPermission(
073 permissionChecker, ruleGroupInstance.getGroupId(),
074 MDRRuleGroupInstance.class.getName(),
075 ruleGroupInstance.getRuleGroupInstanceId(),
076 PortletKeys.MOBILE_DEVICE_SITE_ADMIN, actionId);
077
078 if (hasPermission != null) {
079 return hasPermission.booleanValue();
080 }
081
082 return permissionChecker.hasPermission(
083 ruleGroupInstance.getGroupId(),
084 MDRRuleGroupInstance.class.getName(),
085 ruleGroupInstance.getRuleGroupInstanceId(), actionId);
086 }
087
088 }