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