001
014
015 package com.liferay.portlet.dynamicdatamapping.service.permission;
016
017 import com.liferay.portal.kernel.exception.PortalException;
018 import com.liferay.portal.kernel.exception.SystemException;
019 import com.liferay.portal.security.auth.PrincipalException;
020 import com.liferay.portal.security.permission.PermissionChecker;
021 import com.liferay.portlet.dynamicdatamapping.model.DDMStructure;
022 import com.liferay.portlet.dynamicdatamapping.service.DDMStructureLocalServiceUtil;
023
024
027 public class DDMStructurePermission {
028
029 public static void check(
030 PermissionChecker permissionChecker, DDMStructure structure,
031 String actionId)
032 throws PortalException {
033
034 if (!contains(permissionChecker, structure, actionId)) {
035 throw new PrincipalException();
036 }
037 }
038
039 public static void check(
040 PermissionChecker permissionChecker, long structureId,
041 String actionId)
042 throws PortalException, SystemException {
043
044 if (!contains(permissionChecker, structureId, actionId)) {
045 throw new PrincipalException();
046 }
047 }
048
049 public static void check(
050 PermissionChecker permissionChecker, long groupId,
051 String structureKey, String actionId)
052 throws PortalException, SystemException {
053
054 if (!contains(permissionChecker, groupId, structureKey, actionId)) {
055 throw new PrincipalException();
056 }
057 }
058
059 public static boolean contains(
060 PermissionChecker permissionChecker, DDMStructure structure,
061 String actionId) {
062
063 if (permissionChecker.hasOwnerPermission(
064 structure.getCompanyId(), DDMStructure.class.getName(),
065 structure.getStructureId(), structure.getUserId(), actionId)) {
066
067 return true;
068 }
069
070 return permissionChecker.hasPermission(
071 structure.getGroupId(), DDMStructure.class.getName(),
072 structure.getStructureId(), actionId);
073 }
074
075 public static boolean contains(
076 PermissionChecker permissionChecker, long structureId,
077 String actionId)
078 throws PortalException, SystemException {
079
080 DDMStructure structure = DDMStructureLocalServiceUtil.getStructure(
081 structureId);
082
083 return contains(permissionChecker, structure, actionId);
084 }
085
086 public static boolean contains(
087 PermissionChecker permissionChecker, long groupId,
088 String structureKey, String actionId)
089 throws PortalException, SystemException {
090
091 DDMStructure structure = DDMStructureLocalServiceUtil.getStructure(
092 groupId, structureKey);
093
094 return contains(permissionChecker, structure, actionId);
095 }
096
097 }