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