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