001
014
015 package com.liferay.portlet.bookmarks.trash;
016
017 import com.liferay.portal.kernel.exception.PortalException;
018 import com.liferay.portal.kernel.exception.SystemException;
019 import com.liferay.portal.kernel.trash.TrashActionKeys;
020 import com.liferay.portal.kernel.trash.TrashRenderer;
021 import com.liferay.portal.model.ContainerModel;
022 import com.liferay.portal.security.permission.ActionKeys;
023 import com.liferay.portal.security.permission.PermissionChecker;
024 import com.liferay.portal.service.ServiceContext;
025 import com.liferay.portlet.bookmarks.asset.BookmarksFolderAssetRenderer;
026 import com.liferay.portlet.bookmarks.model.BookmarksFolder;
027 import com.liferay.portlet.bookmarks.service.BookmarksFolderLocalServiceUtil;
028 import com.liferay.portlet.bookmarks.service.permission.BookmarksFolderPermission;
029 import com.liferay.portlet.bookmarks.util.BookmarksUtil;
030
031 import javax.portlet.PortletRequest;
032
033
038 public class BookmarksFolderTrashHandler extends BookmarksBaseTrashHandler {
039
040 @Override
041 public void deleteTrashEntry(long classPK)
042 throws PortalException, SystemException {
043
044 BookmarksFolderLocalServiceUtil.deleteFolder(classPK, false);
045 }
046
047 @Override
048 public String getClassName() {
049 return BookmarksFolder.class.getName();
050 }
051
052 @Override
053 public String getDeleteMessage() {
054 return "found-in-deleted-folder-x";
055 }
056
057 @Override
058 public ContainerModel getParentContainerModel(long classPK)
059 throws PortalException, SystemException {
060
061 BookmarksFolder folder = getBookmarksFolder(classPK);
062
063 long parentFolderId = folder.getParentFolderId();
064
065 if (parentFolderId <= 0) {
066 return null;
067 }
068
069 return getContainerModel(parentFolderId);
070 }
071
072 @Override
073 public String getRestoreContainedModelLink(
074 PortletRequest portletRequest, long classPK)
075 throws PortalException, SystemException {
076
077 BookmarksFolder folder = getBookmarksFolder(classPK);
078
079 return BookmarksUtil.getControlPanelLink(
080 portletRequest, folder.getFolderId());
081 }
082
083 @Override
084 public String getRestoreContainerModelLink(
085 PortletRequest portletRequest, long classPK)
086 throws PortalException, SystemException {
087
088 BookmarksFolder folder = getBookmarksFolder(classPK);
089
090 return BookmarksUtil.getControlPanelLink(
091 portletRequest, folder.getParentFolderId());
092 }
093
094 @Override
095 public String getRestoreMessage(PortletRequest portletRequest, long classPK)
096 throws PortalException, SystemException {
097
098 BookmarksFolder folder = getBookmarksFolder(classPK);
099
100 return BookmarksUtil.getAbsolutePath(
101 portletRequest, folder.getParentFolderId());
102 }
103
104 @Override
105 public ContainerModel getTrashContainer(long classPK)
106 throws PortalException, SystemException {
107
108 BookmarksFolder folder = getBookmarksFolder(classPK);
109
110 return folder.getTrashContainer();
111 }
112
113 @Override
114 public TrashRenderer getTrashRenderer(long classPK)
115 throws PortalException, SystemException {
116
117 BookmarksFolder folder = getBookmarksFolder(classPK);
118
119 return new BookmarksFolderAssetRenderer(folder);
120 }
121
122 @Override
123 public boolean hasTrashPermission(
124 PermissionChecker permissionChecker, long groupId, long classPK,
125 String trashActionId)
126 throws PortalException, SystemException {
127
128 if (trashActionId.equals(TrashActionKeys.MOVE)) {
129 return BookmarksFolderPermission.contains(
130 permissionChecker, groupId, classPK, ActionKeys.ADD_FOLDER);
131 }
132
133 return super.hasTrashPermission(
134 permissionChecker, groupId, classPK, trashActionId);
135 }
136
137 @Override
138 public boolean isContainerModel() {
139 return true;
140 }
141
142 @Override
143 public boolean isInTrash(long classPK)
144 throws PortalException, SystemException {
145
146 BookmarksFolder folder = getBookmarksFolder(classPK);
147
148 return folder.isInTrash();
149 }
150
151 @Override
152 public boolean isInTrashContainer(long classPK)
153 throws PortalException, SystemException {
154
155 BookmarksFolder folder = getBookmarksFolder(classPK);
156
157 return folder.isInTrashContainer();
158 }
159
160 @Override
161 public boolean isRestorable(long classPK)
162 throws PortalException, SystemException {
163
164 BookmarksFolder folder = getBookmarksFolder(classPK);
165
166 if ((folder.getParentFolderId() > 0) &&
167 (BookmarksFolderLocalServiceUtil.fetchBookmarksFolder(
168 folder.getParentFolderId()) == null)) {
169
170 return false;
171 }
172
173 return !folder.isInTrashContainer();
174 }
175
176 @Override
177 public void moveEntry(
178 long userId, long classPK, long containerModelId,
179 ServiceContext serviceContext)
180 throws PortalException, SystemException {
181
182 BookmarksFolderLocalServiceUtil.moveFolder(classPK, containerModelId);
183 }
184
185 @Override
186 public void moveTrashEntry(
187 long userId, long classPK, long containerId,
188 ServiceContext serviceContext)
189 throws PortalException, SystemException {
190
191 BookmarksFolderLocalServiceUtil.moveFolderFromTrash(
192 userId, classPK, containerId);
193 }
194
195 @Override
196 public void restoreTrashEntry(long userId, long classPK)
197 throws PortalException, SystemException {
198
199 BookmarksFolderLocalServiceUtil.restoreFolderFromTrash(userId, classPK);
200 }
201
202 protected BookmarksFolder getBookmarksFolder(long classPK)
203 throws PortalException, SystemException {
204
205 return BookmarksFolderLocalServiceUtil.getFolder(classPK);
206 }
207
208 @Override
209 protected long getGroupId(long classPK)
210 throws PortalException, SystemException {
211
212 BookmarksFolder folder = getBookmarksFolder(classPK);
213
214 return folder.getGroupId();
215 }
216
217 @Override
218 protected boolean hasPermission(
219 PermissionChecker permissionChecker, long classPK, String actionId)
220 throws PortalException, SystemException {
221
222 BookmarksFolder folder = getBookmarksFolder(classPK);
223
224 return BookmarksFolderPermission.contains(
225 permissionChecker, folder, actionId);
226 }
227
228 }