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