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