001
014
015 package com.liferay.portal.service.permission;
016
017 import com.liferay.portal.kernel.exception.PortalException;
018 import com.liferay.portal.kernel.log.Log;
019 import com.liferay.portal.kernel.log.LogFactoryUtil;
020 import com.liferay.portal.kernel.model.Account;
021 import com.liferay.portal.kernel.model.Company;
022 import com.liferay.portal.kernel.model.Contact;
023 import com.liferay.portal.kernel.model.Organization;
024 import com.liferay.portal.kernel.model.User;
025 import com.liferay.portal.kernel.security.auth.PrincipalException;
026 import com.liferay.portal.kernel.security.permission.PermissionChecker;
027 import com.liferay.portal.kernel.service.UserLocalServiceUtil;
028 import com.liferay.portal.kernel.service.permission.CommonPermission;
029 import com.liferay.portal.kernel.service.permission.OrganizationPermissionUtil;
030 import com.liferay.portal.kernel.service.permission.UserPermissionUtil;
031 import com.liferay.portal.kernel.util.PortalUtil;
032
033
036 public class CommonPermissionImpl implements CommonPermission {
037
038 @Override
039 public void check(
040 PermissionChecker permissionChecker, long classNameId, long classPK,
041 String actionId)
042 throws PortalException {
043
044 String className = PortalUtil.getClassName(classNameId);
045
046 check(permissionChecker, className, classPK, actionId);
047 }
048
049 @Override
050 public void check(
051 PermissionChecker permissionChecker, String className, long classPK,
052 String actionId)
053 throws PortalException {
054
055 if (className.equals(Account.class.getName())) {
056 }
057 else if (className.equals(Company.class.getName())) {
058 }
059 else if (className.equals(Contact.class.getName())) {
060 User user = UserLocalServiceUtil.getUserByContactId(classPK);
061
062 UserPermissionUtil.check(
063 permissionChecker, user.getUserId(), actionId);
064 }
065 else if (className.equals(Organization.class.getName())) {
066 OrganizationPermissionUtil.check(
067 permissionChecker, classPK, actionId);
068 }
069 else if (className.equals(User.class.getName())) {
070 UserPermissionUtil.check(permissionChecker, classPK, actionId);
071 }
072 else {
073 if (_log.isWarnEnabled()) {
074 _log.warn("Invalid class name " + className);
075 }
076
077 throw new PrincipalException.MustHavePermission(
078 permissionChecker, className, classPK, actionId);
079 }
080 }
081
082 private static final Log _log = LogFactoryUtil.getLog(
083 CommonPermissionImpl.class);
084
085 }