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 getRestoreLink(PortletRequest portletRequest, long classPK)
074 throws PortalException, SystemException {
075
076 BookmarksFolder folder = getBookmarksFolder(classPK);
077
078 return BookmarksUtil.getControlPanelLink(
079 portletRequest, folder.getParentFolderId());
080 }
081
082 @Override
083 public String getRestoreMessage(PortletRequest portletRequest, long classPK)
084 throws PortalException, SystemException {
085
086 BookmarksFolder folder = getBookmarksFolder(classPK);
087
088 return BookmarksUtil.getAbsolutePath(
089 portletRequest, folder.getParentFolderId());
090 }
091
092 @Override
093 public ContainerModel getTrashContainer(long classPK)
094 throws PortalException, SystemException {
095
096 BookmarksFolder folder = getBookmarksFolder(classPK);
097
098 return folder.getTrashContainer();
099 }
100
101 @Override
102 public TrashRenderer getTrashRenderer(long classPK)
103 throws PortalException, SystemException {
104
105 BookmarksFolder folder = getBookmarksFolder(classPK);
106
107 return new BookmarksFolderAssetRenderer(folder);
108 }
109
110 @Override
111 public boolean hasTrashPermission(
112 PermissionChecker permissionChecker, long groupId, long classPK,
113 String trashActionId)
114 throws PortalException, SystemException {
115
116 if (trashActionId.equals(TrashActionKeys.MOVE)) {
117 return BookmarksFolderPermission.contains(
118 permissionChecker, groupId, classPK, ActionKeys.ADD_FOLDER);
119 }
120
121 return super.hasTrashPermission(
122 permissionChecker, groupId, classPK, trashActionId);
123 }
124
125 @Override
126 public boolean isContainerModel() {
127 return true;
128 }
129
130 @Override
131 public boolean isInTrash(long classPK)
132 throws PortalException, SystemException {
133
134 BookmarksFolder folder = getBookmarksFolder(classPK);
135
136 return folder.isInTrash();
137 }
138
139 @Override
140 public boolean isInTrashContainer(long classPK)
141 throws PortalException, SystemException {
142
143 BookmarksFolder folder = getBookmarksFolder(classPK);
144
145 return folder.isInTrashContainer();
146 }
147
148 @Override
149 public boolean isRestorable(long classPK)
150 throws PortalException, SystemException {
151
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, SystemException {
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, SystemException {
178
179 BookmarksFolderLocalServiceUtil.moveFolderFromTrash(
180 userId, classPK, containerId);
181 }
182
183 @Override
184 public void restoreTrashEntry(long userId, long classPK)
185 throws PortalException, SystemException {
186
187 BookmarksFolderLocalServiceUtil.restoreFolderFromTrash(userId, classPK);
188 }
189
190 protected BookmarksFolder getBookmarksFolder(long classPK)
191 throws PortalException, SystemException {
192
193 return BookmarksFolderLocalServiceUtil.getFolder(classPK);
194 }
195
196 @Override
197 protected long getGroupId(long classPK)
198 throws PortalException, SystemException {
199
200 BookmarksFolder folder = getBookmarksFolder(classPK);
201
202 return folder.getGroupId();
203 }
204
205 @Override
206 protected boolean hasPermission(
207 PermissionChecker permissionChecker, long classPK, String actionId)
208 throws PortalException, SystemException {
209
210 BookmarksFolder folder = getBookmarksFolder(classPK);
211
212 return BookmarksFolderPermission.contains(
213 permissionChecker, folder, actionId);
214 }
215
216 }