001
014
015 package com.liferay.portlet.documentlibrary.service.impl;
016
017 import com.liferay.portal.kernel.exception.PortalException;
018 import com.liferay.portal.kernel.exception.SystemException;
019 import com.liferay.portal.kernel.util.ListUtil;
020 import com.liferay.portal.kernel.util.OrderByComparator;
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.documentlibrary.model.DLFileEntryType;
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.Iterator;
030 import java.util.List;
031
032
038 public class DLFileEntryTypeServiceImpl extends DLFileEntryTypeServiceBaseImpl {
039
040 public DLFileEntryType addFileEntryType(
041 long groupId, String name, String description,
042 long[] ddmStructureIds, ServiceContext serviceContext)
043 throws PortalException, SystemException {
044
045 DLPermission.check(
046 getPermissionChecker(), groupId, ActionKeys.ADD_DOCUMENT_TYPE);
047
048 return dlFileEntryTypeLocalService.addFileEntryType(
049 getUserId(), groupId, name, description, ddmStructureIds,
050 serviceContext);
051 }
052
053 public void deleteFileEntryType(long fileEntryTypeId)
054 throws PortalException, SystemException {
055
056 DLFileEntryTypePermission.check(
057 getPermissionChecker(), fileEntryTypeId, ActionKeys.DELETE);
058
059 dlFileEntryTypeLocalService.deleteFileEntryType(fileEntryTypeId);
060 }
061
062 public DLFileEntryType getFileEntryType(long fileEntryTypeId)
063 throws PortalException, SystemException {
064
065 DLFileEntryTypePermission.check(
066 getPermissionChecker(), fileEntryTypeId, ActionKeys.VIEW);
067
068 return dlFileEntryTypeLocalService.getFileEntryType(fileEntryTypeId);
069 }
070
071 public List<DLFileEntryType> getFileEntryTypes(long[] groupIds)
072 throws SystemException {
073
074 return dlFileEntryTypePersistence.filterFindByGroupId(groupIds);
075 }
076
077 public int getFileEntryTypesCount(long[] groupIds) throws SystemException {
078 return dlFileEntryTypePersistence.filterCountByGroupId(groupIds);
079 }
080
081 public List<DLFileEntryType> getFolderFileEntryTypes(
082 long[] groupIds, long folderId, boolean inherited)
083 throws PortalException, SystemException {
084
085 return filterFileEntryTypes(
086 dlFileEntryTypeLocalService.getFolderFileEntryTypes(
087 groupIds, folderId, inherited));
088 }
089
090 public List<DLFileEntryType> search(
091 long companyId, long[] groupIds, String keywords,
092 boolean includeBasicFileEntryType, int start, int end,
093 OrderByComparator orderByComparator)
094 throws SystemException {
095
096 return dlFileEntryTypeFinder.filterFindByKeywords(
097 companyId, groupIds, keywords, includeBasicFileEntryType, start,
098 end, orderByComparator);
099 }
100
101 public int searchCount(
102 long companyId, long[] groupIds, String keywords,
103 boolean includeBasicFileEntryType)
104 throws SystemException {
105
106 return dlFileEntryTypeFinder.filterCountByKeywords(
107 companyId, groupIds, keywords, includeBasicFileEntryType);
108 }
109
110 public void updateFileEntryType(
111 long fileEntryTypeId, String name, String description,
112 long[] ddmStructureIds, ServiceContext serviceContext)
113 throws PortalException, SystemException {
114
115 DLFileEntryTypePermission.check(
116 getPermissionChecker(), fileEntryTypeId, ActionKeys.UPDATE);
117
118 dlFileEntryTypeLocalService.updateFileEntryType(
119 getUserId(), fileEntryTypeId, name, description, ddmStructureIds,
120 serviceContext);
121 }
122
123 protected List<DLFileEntryType> filterFileEntryTypes(
124 List<DLFileEntryType> fileEntryTypes)
125 throws PortalException {
126
127 PermissionChecker permissionChecker = getPermissionChecker();
128
129 fileEntryTypes = ListUtil.copy(fileEntryTypes);
130
131 Iterator<DLFileEntryType> itr = fileEntryTypes.iterator();
132
133 while (itr.hasNext()) {
134 DLFileEntryType fileEntryType = itr.next();
135
136 if ((fileEntryType.getFileEntryTypeId() > 0) &&
137 !DLFileEntryTypePermission.contains(
138 permissionChecker, fileEntryType, ActionKeys.VIEW)) {
139
140 itr.remove();
141 }
142 }
143
144 return fileEntryTypes;
145 }
146
147 }