1
22
23 package com.liferay.portlet.documentlibrary.service.permission;
24
25 import com.liferay.portal.PortalException;
26 import com.liferay.portal.SystemException;
27 import com.liferay.portal.security.auth.PrincipalException;
28 import com.liferay.portal.security.permission.ActionKeys;
29 import com.liferay.portal.security.permission.PermissionChecker;
30 import com.liferay.portal.util.PropsValues;
31 import com.liferay.portlet.documentlibrary.model.DLFileEntry;
32 import com.liferay.portlet.documentlibrary.model.DLFolder;
33 import com.liferay.portlet.documentlibrary.service.DLFileEntryLocalServiceUtil;
34 import com.liferay.portlet.documentlibrary.service.DLFolderLocalServiceUtil;
35
36
42 public class DLFileEntryPermission {
43
44 public static void check(
45 PermissionChecker permissionChecker, long folderId, String name,
46 String actionId)
47 throws PortalException, SystemException {
48
49 if (!contains(permissionChecker, folderId, name, actionId)) {
50 throw new PrincipalException();
51 }
52 }
53
54 public static void check(
55 PermissionChecker permissionChecker, DLFileEntry fileEntry,
56 String actionId)
57 throws PortalException, SystemException {
58
59 if (!contains(permissionChecker, fileEntry, actionId)) {
60 throw new PrincipalException();
61 }
62 }
63
64 public static boolean contains(
65 PermissionChecker permissionChecker, long folderId, String name,
66 String actionId)
67 throws PortalException, SystemException {
68
69 DLFileEntry fileEntry = DLFileEntryLocalServiceUtil.getFileEntry(
70 folderId, name);
71
72 return contains(permissionChecker, fileEntry, actionId);
73 }
74
75 public static boolean contains(
76 PermissionChecker permissionChecker, DLFileEntry fileEntry,
77 String actionId)
78 throws PortalException, SystemException {
79
80 DLFolder folder = DLFolderLocalServiceUtil.getFolder(
81 fileEntry.getFolderId());
82
83 if (PropsValues.PERMISSIONS_VIEW_DYNAMIC_INHERITANCE) {
84 if (!DLFolderPermission.contains(
85 permissionChecker, folder, ActionKeys.VIEW)) {
86
87 return false;
88 }
89 }
90
91 if (permissionChecker.hasOwnerPermission(
92 fileEntry.getCompanyId(), DLFileEntry.class.getName(),
93 fileEntry.getFileEntryId(), fileEntry.getUserId(), actionId)) {
94
95 return true;
96 }
97
98 return permissionChecker.hasPermission(
99 fileEntry.getGroupId(), DLFileEntry.class.getName(),
100 fileEntry.getFileEntryId(), actionId);
101 }
102
103 }