1
22
23 package com.liferay.portlet.announcements.service.impl;
24
25 import com.liferay.portal.PortalException;
26 import com.liferay.portal.SystemException;
27 import com.liferay.portal.model.Group;
28 import com.liferay.portal.model.Organization;
29 import com.liferay.portal.model.Role;
30 import com.liferay.portal.model.UserGroup;
31 import com.liferay.portal.security.auth.PrincipalException;
32 import com.liferay.portal.security.permission.ActionKeys;
33 import com.liferay.portal.security.permission.PermissionChecker;
34 import com.liferay.portal.service.permission.GroupPermissionUtil;
35 import com.liferay.portal.service.permission.OrganizationPermissionUtil;
36 import com.liferay.portal.service.permission.PortletPermissionUtil;
37 import com.liferay.portal.service.permission.RolePermissionUtil;
38 import com.liferay.portal.service.permission.UserGroupPermissionUtil;
39 import com.liferay.portal.util.PortalUtil;
40 import com.liferay.portal.util.PortletKeys;
41 import com.liferay.portlet.announcements.model.AnnouncementsEntry;
42 import com.liferay.portlet.announcements.service.base.AnnouncementsEntryServiceBaseImpl;
43 import com.liferay.portlet.announcements.service.permission.AnnouncementsEntryPermission;
44
45
52 public class AnnouncementsEntryServiceImpl
53 extends AnnouncementsEntryServiceBaseImpl {
54
55 public AnnouncementsEntry addEntry(
56 long plid, long classNameId, long classPK, String title,
57 String content, String url, String type, int displayDateMonth,
58 int displayDateDay, int displayDateYear, int displayDateHour,
59 int displayDateMinute, int expirationDateMonth,
60 int expirationDateDay, int expirationDateYear,
61 int expirationDateHour, int expirationDateMinute, int priority,
62 boolean alert)
63 throws PortalException, SystemException {
64
65 PermissionChecker permissionChecker = getPermissionChecker();
66
67 PortletPermissionUtil.check(
68 permissionChecker, plid, PortletKeys.ANNOUNCEMENTS,
69 ActionKeys.ADD_ENTRY);
70
71 if (classNameId == 0) {
72 if (!permissionChecker.isOmniadmin()) {
73 throw new PrincipalException();
74 }
75 }
76 else {
77 String className = PortalUtil.getClassName(classNameId);
78
79 if (className.equals(Group.class.getName()) &&
80 !GroupPermissionUtil.contains(
81 permissionChecker, classPK,
82 ActionKeys.MANAGE_ANNOUNCEMENTS)) {
83
84 throw new PrincipalException();
85 }
86
87 if (className.equals(Organization.class.getName()) &&
88 !OrganizationPermissionUtil.contains(
89 permissionChecker, classPK,
90 ActionKeys.MANAGE_ANNOUNCEMENTS)) {
91
92 throw new PrincipalException();
93 }
94
95 if (className.equals(Role.class.getName()) &&
96 !RolePermissionUtil.contains(
97 permissionChecker, classPK,
98 ActionKeys.MANAGE_ANNOUNCEMENTS)) {
99
100 throw new PrincipalException();
101 }
102
103 if (className.equals(UserGroup.class.getName()) &&
104 !UserGroupPermissionUtil.contains(
105 permissionChecker, classPK,
106 ActionKeys.MANAGE_ANNOUNCEMENTS)) {
107
108 throw new PrincipalException();
109 }
110 }
111
112 return announcementsEntryLocalService.addEntry(
113 getUserId(), classNameId, classPK, title, content, url, type,
114 displayDateMonth, displayDateDay, displayDateYear, displayDateHour,
115 displayDateMinute, expirationDateMonth, expirationDateDay,
116 expirationDateYear, expirationDateHour, expirationDateMinute,
117 priority, alert);
118 }
119
120 public void deleteEntry(long entryId)
121 throws PortalException, SystemException {
122
123 AnnouncementsEntryPermission.check(
124 getPermissionChecker(), entryId, ActionKeys.DELETE);
125
126 announcementsEntryLocalService.deleteEntry(entryId);
127 }
128
129 public AnnouncementsEntry updateEntry(
130 long entryId, String title, String content, String url,
131 String type, int displayDateMonth, int displayDateDay,
132 int displayDateYear, int displayDateHour, int displayDateMinute,
133 int expirationDateMonth, int expirationDateDay,
134 int expirationDateYear, int expirationDateHour,
135 int expirationDateMinute, int priority)
136 throws PortalException, SystemException {
137
138 AnnouncementsEntryPermission.check(
139 getPermissionChecker(), entryId, ActionKeys.UPDATE);
140
141 return announcementsEntryLocalService.updateEntry(
142 getUserId(), entryId, title, content, url, type, displayDateMonth,
143 displayDateDay, displayDateYear, displayDateHour, displayDateMinute,
144 expirationDateMonth, expirationDateDay, expirationDateYear,
145 expirationDateHour, expirationDateMinute, priority);
146 }
147
148 }