001
014
015 package com.liferay.portlet.announcements.service.permission;
016
017 import com.liferay.portal.kernel.exception.PortalException;
018 import com.liferay.portal.kernel.exception.SystemException;
019 import com.liferay.portal.model.Layout;
020 import com.liferay.portal.security.auth.PrincipalException;
021 import com.liferay.portal.security.permission.PermissionChecker;
022 import com.liferay.portal.service.LayoutLocalServiceUtil;
023 import com.liferay.portal.service.permission.PortletPermissionUtil;
024 import com.liferay.portlet.announcements.model.AnnouncementsEntry;
025 import com.liferay.portlet.announcements.service.AnnouncementsEntryLocalServiceUtil;
026
027
030 public class AnnouncementsEntryPermission {
031
032 public static void check(
033 PermissionChecker permissionChecker, AnnouncementsEntry entry,
034 String actionId)
035 throws PortalException, SystemException {
036
037 if (!contains(permissionChecker, entry, actionId)) {
038 throw new PrincipalException();
039 }
040 }
041
042 public static void check(
043 PermissionChecker permissionChecker, Layout layout, String name,
044 String actionId)
045 throws PortalException, SystemException {
046
047 if (!contains(permissionChecker, layout, name, actionId)) {
048 throw new PrincipalException();
049 }
050 }
051
052 public static void check(
053 PermissionChecker permissionChecker, long entryId, String actionId)
054 throws PortalException, SystemException {
055
056 if (!contains(permissionChecker, entryId, actionId)) {
057 throw new PrincipalException();
058 }
059 }
060
061 public static void check(
062 PermissionChecker permissionChecker, long plid, String name,
063 String actionId)
064 throws PortalException, SystemException {
065
066 if (!contains(permissionChecker, plid, name, actionId)) {
067 throw new PrincipalException();
068 }
069 }
070
071 public static boolean contains(
072 PermissionChecker permissionChecker, AnnouncementsEntry entry,
073 String actionId)
074 throws PortalException, SystemException {
075
076 if (permissionChecker.hasOwnerPermission(
077 entry.getCompanyId(), AnnouncementsEntry.class.getName(),
078 entry.getEntryId(), entry.getUserId(), actionId)) {
079
080 return true;
081 }
082
083 return permissionChecker.hasPermission(
084 entry.getGroupId(), AnnouncementsEntry.class.getName(),
085 entry.getEntryId(), actionId);
086 }
087
088 public static boolean contains(
089 PermissionChecker permissionChecker, Layout layout, String name,
090 String actionId)
091 throws PortalException, SystemException {
092
093 if (permissionChecker.isGroupAdmin(layout.getGroupId()) ||
094 permissionChecker.isGroupOwner(layout.getGroupId())) {
095
096 return true;
097 }
098
099 return PortletPermissionUtil.contains(
100 permissionChecker, layout, name, actionId);
101 }
102
103 public static boolean contains(
104 PermissionChecker permissionChecker, long entryId, String actionId)
105 throws PortalException, SystemException {
106
107 AnnouncementsEntry entry = AnnouncementsEntryLocalServiceUtil.getEntry(
108 entryId);
109
110 return contains(permissionChecker, entry, actionId);
111 }
112
113 public static boolean contains(
114 PermissionChecker permissionChecker, long plid, String name,
115 String actionId)
116 throws PortalException, SystemException {
117
118 Layout layout = LayoutLocalServiceUtil.fetchLayout(plid);
119
120 return contains(permissionChecker, layout, name, actionId);
121 }
122
123 }