1
22
23 package com.liferay.portal.service.permission;
24
25 import com.liferay.portal.PortalException;
26 import com.liferay.portal.SystemException;
27 import com.liferay.portal.model.Account;
28 import com.liferay.portal.model.Contact;
29 import com.liferay.portal.model.Organization;
30 import com.liferay.portal.model.User;
31 import com.liferay.portal.security.auth.PrincipalException;
32 import com.liferay.portal.security.permission.PermissionChecker;
33 import com.liferay.portal.service.UserLocalServiceUtil;
34 import com.liferay.portal.util.PortalUtil;
35
36 import org.apache.commons.logging.Log;
37 import org.apache.commons.logging.LogFactory;
38
39
45 public class CommonPermissionImpl implements CommonPermission {
46
47 public void check(
48 PermissionChecker permissionChecker, long classNameId,
49 long classPK, String actionId)
50 throws PortalException, SystemException {
51
52 String className = PortalUtil.getClassName(classNameId);
53
54 check(permissionChecker, className, classPK, actionId);
55 }
56
57 public void check(
58 PermissionChecker permissionChecker, String className,
59 long classPK, String actionId)
60 throws PortalException, SystemException {
61
62 if (className.equals(Account.class.getName())) {
63 }
64 else if (className.equals(Contact.class.getName())) {
65 User user = UserLocalServiceUtil.getUserByContactId(classPK);
66
67 UserPermissionUtil.check(
68 permissionChecker, user.getUserId(), user.getOrganizationIds(),
69 actionId);
70 }
71 else if (className.equals(Organization.class.getName())) {
72 OrganizationPermissionUtil.check(
73 permissionChecker, classPK, actionId);
74 }
75 else {
76 if (_log.isWarnEnabled()) {
77 _log.warn("Invalid class name " + className);
78 }
79
80 throw new PrincipalException();
81 }
82 }
83
84 private static Log _log = LogFactory.getLog(CommonPermissionImpl.class);
85
86 }