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
51 public class AnnouncementsEntryServiceImpl
52 extends AnnouncementsEntryServiceBaseImpl {
53
54 public AnnouncementsEntry addEntry(
55 long plid, long classNameId, long classPK, String title,
56 String content, String url, String type, int displayDateMonth,
57 int displayDateDay, int displayDateYear, int displayDateHour,
58 int displayDateMinute, int expirationDateMonth,
59 int expirationDateDay, int expirationDateYear,
60 int expirationDateHour, int expirationDateMinute, int priority,
61 boolean alert)
62 throws PortalException, SystemException {
63
64 PermissionChecker permissionChecker = getPermissionChecker();
65
66 PortletPermissionUtil.check(
67 permissionChecker, plid, PortletKeys.ANNOUNCEMENTS,
68 ActionKeys.ADD_ENTRY);
69
70 if (classNameId == 0) {
71 if (!permissionChecker.isOmniadmin()) {
72 throw new PrincipalException();
73 }
74 }
75 else {
76 String className = PortalUtil.getClassName(classNameId);
77
78 if (className.equals(Group.class.getName()) &&
79 !GroupPermissionUtil.contains(
80 permissionChecker, classPK,
81 ActionKeys.MANAGE_ANNOUNCEMENTS)) {
82
83 throw new PrincipalException();
84 }
85
86 if (className.equals(Organization.class.getName()) &&
87 !OrganizationPermissionUtil.contains(
88 permissionChecker, classPK,
89 ActionKeys.MANAGE_ANNOUNCEMENTS)) {
90
91 throw new PrincipalException();
92 }
93
94 if (className.equals(Role.class.getName()) &&
95 !RolePermissionUtil.contains(
96 permissionChecker, classPK,
97 ActionKeys.MANAGE_ANNOUNCEMENTS)) {
98
99 throw new PrincipalException();
100 }
101
102 if (className.equals(UserGroup.class.getName()) &&
103 !UserGroupPermissionUtil.contains(
104 permissionChecker, classPK,
105 ActionKeys.MANAGE_ANNOUNCEMENTS)) {
106
107 throw new PrincipalException();
108 }
109 }
110
111 return announcementsEntryLocalService.addEntry(
112 getUserId(), classNameId, classPK, title, content, url, type,
113 displayDateMonth, displayDateDay, displayDateYear, displayDateHour,
114 displayDateMinute, expirationDateMonth, expirationDateDay,
115 expirationDateYear, expirationDateHour, expirationDateMinute,
116 priority, alert);
117 }
118
119 public void deleteEntry(long entryId)
120 throws PortalException, SystemException {
121
122 AnnouncementsEntryPermission.check(
123 getPermissionChecker(), entryId, ActionKeys.DELETE);
124
125 announcementsEntryLocalService.deleteEntry(entryId);
126 }
127
128 public AnnouncementsEntry updateEntry(
129 long entryId, String title, String content, String url,
130 String type, int displayDateMonth, int displayDateDay,
131 int displayDateYear, int displayDateHour, int displayDateMinute,
132 int expirationDateMonth, int expirationDateDay,
133 int expirationDateYear, int expirationDateHour,
134 int expirationDateMinute, int priority)
135 throws PortalException, SystemException {
136
137 AnnouncementsEntryPermission.check(
138 getPermissionChecker(), entryId, ActionKeys.UPDATE);
139
140 return announcementsEntryLocalService.updateEntry(
141 getUserId(), entryId, title, content, url, type, displayDateMonth,
142 displayDateDay, displayDateYear, displayDateHour, displayDateMinute,
143 expirationDateMonth, expirationDateDay, expirationDateYear,
144 expirationDateHour, expirationDateMinute, priority);
145 }
146
147 }