001
014
015 package com.liferay.portlet.documentlibrary.service.impl;
016
017 import com.liferay.document.library.kernel.model.DLFileEntryType;
018 import com.liferay.portal.kernel.exception.PortalException;
019 import com.liferay.portal.kernel.security.permission.ActionKeys;
020 import com.liferay.portal.kernel.security.permission.PermissionChecker;
021 import com.liferay.portal.kernel.service.ServiceContext;
022 import com.liferay.portal.kernel.util.ListUtil;
023 import com.liferay.portal.kernel.util.LocaleUtil;
024 import com.liferay.portal.kernel.util.OrderByComparator;
025 import com.liferay.portlet.documentlibrary.service.base.DLFileEntryTypeServiceBaseImpl;
026 import com.liferay.portlet.documentlibrary.service.permission.DLFileEntryTypePermission;
027 import com.liferay.portlet.documentlibrary.service.permission.DLPermission;
028
029 import java.util.HashMap;
030 import java.util.Iterator;
031 import java.util.List;
032 import java.util.Locale;
033 import java.util.Map;
034
035
041 public class DLFileEntryTypeServiceImpl extends DLFileEntryTypeServiceBaseImpl {
042
043 @Override
044 public DLFileEntryType addFileEntryType(
045 long groupId, String fileEntryTypeKey, Map<Locale, String> nameMap,
046 Map<Locale, String> descriptionMap, long[] ddmStructureIds,
047 ServiceContext serviceContext)
048 throws PortalException {
049
050 DLPermission.check(
051 getPermissionChecker(), groupId, ActionKeys.ADD_DOCUMENT_TYPE);
052
053 return dlFileEntryTypeLocalService.addFileEntryType(
054 getUserId(), groupId, fileEntryTypeKey, nameMap, descriptionMap,
055 ddmStructureIds, serviceContext);
056 }
057
058 @Override
059 public DLFileEntryType addFileEntryType(
060 long groupId, String name, String description,
061 long[] ddmStructureIds, ServiceContext serviceContext)
062 throws PortalException {
063
064 Map<Locale, String> nameMap = new HashMap<>();
065
066 nameMap.put(LocaleUtil.getSiteDefault(), name);
067
068 Map<Locale, String> descriptionMap = new HashMap<>();
069
070 descriptionMap.put(LocaleUtil.getSiteDefault(), description);
071
072 return addFileEntryType(
073 groupId, null, nameMap, descriptionMap, ddmStructureIds,
074 serviceContext);
075 }
076
077 @Override
078 public void deleteFileEntryType(long fileEntryTypeId)
079 throws PortalException {
080
081 DLFileEntryTypePermission.check(
082 getPermissionChecker(), fileEntryTypeId, ActionKeys.DELETE);
083
084 dlFileEntryTypeLocalService.deleteFileEntryType(fileEntryTypeId);
085 }
086
087 @Override
088 public DLFileEntryType getFileEntryType(long fileEntryTypeId)
089 throws PortalException {
090
091 DLFileEntryTypePermission.check(
092 getPermissionChecker(), fileEntryTypeId, ActionKeys.VIEW);
093
094 return dlFileEntryTypeLocalService.getFileEntryType(fileEntryTypeId);
095 }
096
097 @Override
098 public List<DLFileEntryType> getFileEntryTypes(long[] groupIds) {
099 return dlFileEntryTypePersistence.filterFindByGroupId(groupIds);
100 }
101
102 @Override
103 public List<DLFileEntryType> getFileEntryTypes(
104 long[] groupIds, int start, int end) {
105
106 return dlFileEntryTypePersistence.filterFindByGroupId(
107 groupIds, start, end);
108 }
109
110 @Override
111 public int getFileEntryTypesCount(long[] groupIds) {
112 return dlFileEntryTypePersistence.filterCountByGroupId(groupIds);
113 }
114
115 @Override
116 public List<DLFileEntryType> getFolderFileEntryTypes(
117 long[] groupIds, long folderId, boolean inherited)
118 throws PortalException {
119
120 return filterFileEntryTypes(
121 dlFileEntryTypeLocalService.getFolderFileEntryTypes(
122 groupIds, folderId, inherited));
123 }
124
125 @Override
126 public List<DLFileEntryType> search(
127 long companyId, long[] groupIds, String keywords,
128 boolean includeBasicFileEntryType, int start, int end,
129 OrderByComparator<DLFileEntryType> orderByComparator) {
130
131 return dlFileEntryTypeFinder.filterFindByKeywords(
132 companyId, groupIds, keywords, includeBasicFileEntryType, start,
133 end, orderByComparator);
134 }
135
136 @Override
137 public int searchCount(
138 long companyId, long[] groupIds, String keywords,
139 boolean includeBasicFileEntryType) {
140
141 return dlFileEntryTypeFinder.filterCountByKeywords(
142 companyId, groupIds, keywords, includeBasicFileEntryType);
143 }
144
145 @Override
146 public void updateFileEntryType(
147 long fileEntryTypeId, Map<Locale, String> nameMap,
148 Map<Locale, String> descriptionMap, long[] ddmStructureIds,
149 ServiceContext serviceContext)
150 throws PortalException {
151
152 DLFileEntryTypePermission.check(
153 getPermissionChecker(), fileEntryTypeId, ActionKeys.UPDATE);
154
155 dlFileEntryTypeLocalService.updateFileEntryType(
156 getUserId(), fileEntryTypeId, nameMap, descriptionMap,
157 ddmStructureIds, serviceContext);
158 }
159
160 @Override
161 public void updateFileEntryType(
162 long fileEntryTypeId, String name, String description,
163 long[] ddmStructureIds, ServiceContext serviceContext)
164 throws PortalException {
165
166 Map<Locale, String> nameMap = new HashMap<>();
167
168 nameMap.put(LocaleUtil.getSiteDefault(), name);
169
170 Map<Locale, String> descriptionMap = new HashMap<>();
171
172 descriptionMap.put(LocaleUtil.getSiteDefault(), description);
173
174 updateFileEntryType(
175 fileEntryTypeId, nameMap, descriptionMap, ddmStructureIds,
176 serviceContext);
177 }
178
179 protected List<DLFileEntryType> filterFileEntryTypes(
180 List<DLFileEntryType> fileEntryTypes)
181 throws PortalException {
182
183 PermissionChecker permissionChecker = getPermissionChecker();
184
185 fileEntryTypes = ListUtil.copy(fileEntryTypes);
186
187 Iterator<DLFileEntryType> itr = fileEntryTypes.iterator();
188
189 while (itr.hasNext()) {
190 DLFileEntryType fileEntryType = itr.next();
191
192 if ((fileEntryType.getFileEntryTypeId() > 0) &&
193 !DLFileEntryTypePermission.contains(
194 permissionChecker, fileEntryType, ActionKeys.VIEW)) {
195
196 itr.remove();
197 }
198 }
199
200 return fileEntryTypes;
201 }
202
203 }