001
014
015 package com.liferay.portlet.announcements.service.permission;
016
017 import com.liferay.portal.kernel.exception.PortalException;
018 import com.liferay.portal.model.Layout;
019 import com.liferay.portal.model.impl.VirtualLayout;
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 {
036
037 if (!contains(permissionChecker, entry, actionId)) {
038 throw new PrincipalException.MustHavePermission(
039 permissionChecker, AnnouncementsEntry.class.getName(),
040 entry.getEntryId(), actionId);
041 }
042 }
043
044 public static void check(
045 PermissionChecker permissionChecker, Layout layout, String name,
046 String actionId)
047 throws PortalException {
048
049 if (!contains(permissionChecker, layout, name, actionId)) {
050 throw new PrincipalException.MustHavePermission(
051 permissionChecker, AnnouncementsEntry.class.getName(), name,
052 actionId);
053 }
054 }
055
056 public static void check(
057 PermissionChecker permissionChecker, long entryId, String actionId)
058 throws PortalException {
059
060 if (!contains(permissionChecker, entryId, actionId)) {
061 throw new PrincipalException.MustHavePermission(
062 permissionChecker, AnnouncementsEntry.class.getName(), entryId,
063 actionId);
064 }
065 }
066
067 public static void check(
068 PermissionChecker permissionChecker, long plid, String name,
069 String actionId)
070 throws PortalException {
071
072 if (!contains(permissionChecker, plid, name, actionId)) {
073 throw new PrincipalException.MustHavePermission(
074 permissionChecker, AnnouncementsEntry.class.getName(), name,
075 actionId);
076 }
077 }
078
079 public static boolean contains(
080 PermissionChecker permissionChecker, AnnouncementsEntry entry,
081 String actionId)
082 throws PortalException {
083
084 if (permissionChecker.hasOwnerPermission(
085 entry.getCompanyId(), AnnouncementsEntry.class.getName(),
086 entry.getEntryId(), entry.getUserId(), actionId)) {
087
088 return true;
089 }
090
091 return permissionChecker.hasPermission(
092 entry.getGroupId(), AnnouncementsEntry.class.getName(),
093 entry.getEntryId(), actionId);
094 }
095
096 public static boolean contains(
097 PermissionChecker permissionChecker, Layout layout, String name,
098 String actionId) {
099
100 if (layout instanceof VirtualLayout) {
101 VirtualLayout virtualLayout = (VirtualLayout)layout;
102
103 layout = virtualLayout.getSourceLayout();
104 }
105
106 String primKey = PortletPermissionUtil.getPrimaryKey(
107 layout.getPlid(), name);
108
109 return permissionChecker.hasPermission(
110 layout.getGroupId(), name, primKey, actionId);
111 }
112
113 public static boolean contains(
114 PermissionChecker permissionChecker, long entryId, String actionId)
115 throws PortalException {
116
117 AnnouncementsEntry entry = AnnouncementsEntryLocalServiceUtil.getEntry(
118 entryId);
119
120 return contains(permissionChecker, entry, actionId);
121 }
122
123 public static boolean contains(
124 PermissionChecker permissionChecker, long plid, String name,
125 String actionId) {
126
127 Layout layout = LayoutLocalServiceUtil.fetchLayout(plid);
128
129 return contains(permissionChecker, layout, name, actionId);
130 }
131
132 }