001
014
015 package com.liferay.portlet.announcements.service.impl;
016
017 import com.liferay.portal.kernel.exception.PortalException;
018 import com.liferay.portal.kernel.exception.SystemException;
019 import com.liferay.portal.model.Group;
020 import com.liferay.portal.model.Organization;
021 import com.liferay.portal.model.Role;
022 import com.liferay.portal.model.UserGroup;
023 import com.liferay.portal.security.auth.PrincipalException;
024 import com.liferay.portal.security.permission.ActionKeys;
025 import com.liferay.portal.security.permission.PermissionChecker;
026 import com.liferay.portal.service.permission.GroupPermissionUtil;
027 import com.liferay.portal.service.permission.OrganizationPermissionUtil;
028 import com.liferay.portal.service.permission.RolePermissionUtil;
029 import com.liferay.portal.service.permission.UserGroupPermissionUtil;
030 import com.liferay.portal.util.PortalUtil;
031 import com.liferay.portal.util.PortletKeys;
032 import com.liferay.portlet.announcements.model.AnnouncementsEntry;
033 import com.liferay.portlet.announcements.service.base.AnnouncementsEntryServiceBaseImpl;
034 import com.liferay.portlet.announcements.service.permission.AnnouncementsEntryPermission;
035
036
039 public class AnnouncementsEntryServiceImpl
040 extends AnnouncementsEntryServiceBaseImpl {
041
042 @Override
043 public AnnouncementsEntry addEntry(
044 long plid, long classNameId, long classPK, String title,
045 String content, String url, String type, int displayDateMonth,
046 int displayDateDay, int displayDateYear, int displayDateHour,
047 int displayDateMinute, boolean autoDisplayDate,
048 int expirationDateMonth, int expirationDateDay,
049 int expirationDateYear, int expirationDateHour,
050 int expirationDateMinute, int priority, boolean alert)
051 throws PortalException, SystemException {
052
053 PermissionChecker permissionChecker = getPermissionChecker();
054
055 if (alert) {
056 AnnouncementsEntryPermission.check(
057 permissionChecker, plid, PortletKeys.ALERTS,
058 ActionKeys.ADD_ENTRY);
059 }
060 else {
061 AnnouncementsEntryPermission.check(
062 permissionChecker, plid, PortletKeys.ANNOUNCEMENTS,
063 ActionKeys.ADD_ENTRY);
064 }
065
066 if (classNameId == 0) {
067 if (!permissionChecker.isOmniadmin()) {
068 throw new PrincipalException();
069 }
070 }
071 else {
072 String className = PortalUtil.getClassName(classNameId);
073
074 if (className.equals(Group.class.getName()) &&
075 !GroupPermissionUtil.contains(
076 permissionChecker, classPK,
077 ActionKeys.MANAGE_ANNOUNCEMENTS)) {
078
079 throw new PrincipalException();
080 }
081
082 if (className.equals(Organization.class.getName()) &&
083 !OrganizationPermissionUtil.contains(
084 permissionChecker, classPK,
085 ActionKeys.MANAGE_ANNOUNCEMENTS)) {
086
087 throw new PrincipalException();
088 }
089
090 if (className.equals(Role.class.getName()) &&
091 !RolePermissionUtil.contains(
092 permissionChecker, classPK,
093 ActionKeys.MANAGE_ANNOUNCEMENTS)) {
094
095 throw new PrincipalException();
096 }
097
098 if (className.equals(UserGroup.class.getName()) &&
099 !UserGroupPermissionUtil.contains(
100 permissionChecker, classPK,
101 ActionKeys.MANAGE_ANNOUNCEMENTS)) {
102
103 throw new PrincipalException();
104 }
105 }
106
107 return announcementsEntryLocalService.addEntry(
108 getUserId(), classNameId, classPK, title, content, url, type,
109 displayDateMonth, displayDateDay, displayDateYear, displayDateHour,
110 displayDateMinute, autoDisplayDate, expirationDateMonth,
111 expirationDateDay, expirationDateYear, expirationDateHour,
112 expirationDateMinute, priority, alert);
113 }
114
115
120 @Override
121 public AnnouncementsEntry addEntry(
122 long plid, long classNameId, long classPK, String title,
123 String content, String url, String type, int displayDateMonth,
124 int displayDateDay, int displayDateYear, int displayDateHour,
125 int displayDateMinute, int expirationDateMonth,
126 int expirationDateDay, int expirationDateYear,
127 int expirationDateHour, int expirationDateMinute, int priority,
128 boolean alert)
129 throws PortalException, SystemException {
130
131 return addEntry(
132 plid, classNameId, classPK, title, content, url, type,
133 displayDateMonth, displayDateDay, displayDateYear, displayDateHour,
134 displayDateMinute, false, expirationDateMonth, expirationDateDay,
135 expirationDateYear, expirationDateHour, expirationDateMinute,
136 priority, alert);
137 }
138
139 @Override
140 public void deleteEntry(long entryId)
141 throws PortalException, SystemException {
142
143 AnnouncementsEntryPermission.check(
144 getPermissionChecker(), entryId, ActionKeys.DELETE);
145
146 announcementsEntryLocalService.deleteEntry(entryId);
147 }
148
149 @Override
150 public AnnouncementsEntry getEntry(long entryId)
151 throws PortalException, SystemException {
152
153 AnnouncementsEntry entry = announcementsEntryLocalService.getEntry(
154 entryId);
155
156 AnnouncementsEntryPermission.check(
157 getPermissionChecker(), entry, ActionKeys.VIEW);
158
159 return entry;
160 }
161
162 @Override
163 public AnnouncementsEntry updateEntry(
164 long entryId, String title, String content, String url, String type,
165 int displayDateMonth, int displayDateDay, int displayDateYear,
166 int displayDateHour, int displayDateMinute, int expirationDateMonth,
167 int expirationDateDay, int expirationDateYear,
168 int expirationDateHour, int expirationDateMinute, int priority)
169 throws PortalException, SystemException {
170
171 AnnouncementsEntryPermission.check(
172 getPermissionChecker(), entryId, ActionKeys.UPDATE);
173
174 return announcementsEntryLocalService.updateEntry(
175 getUserId(), entryId, title, content, url, type, displayDateMonth,
176 displayDateDay, displayDateYear, displayDateHour, displayDateMinute,
177 expirationDateMonth, expirationDateDay, expirationDateYear,
178 expirationDateHour, expirationDateMinute, priority);
179 }
180
181 }