001
014
015 package com.liferay.portal.service.permission;
016
017 import com.liferay.portal.kernel.exception.PortalException;
018 import com.liferay.portal.kernel.exception.SystemException;
019 import com.liferay.portal.kernel.log.Log;
020 import com.liferay.portal.kernel.log.LogFactoryUtil;
021 import com.liferay.portal.model.Account;
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, SystemException {
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, SystemException {
051
052 if (className.equals(Account.class.getName())) {
053 }
054 else if (className.equals(Contact.class.getName())) {
055 User user = UserLocalServiceUtil.getUserByContactId(classPK);
056
057 UserPermissionUtil.check(
058 permissionChecker, user.getUserId(), user.getOrganizationIds(),
059 actionId);
060 }
061 else if (className.equals(Organization.class.getName())) {
062 OrganizationPermissionUtil.check(
063 permissionChecker, classPK, actionId);
064 }
065 else {
066 if (_log.isWarnEnabled()) {
067 _log.warn("Invalid class name " + className);
068 }
069
070 throw new PrincipalException();
071 }
072 }
073
074 private static Log _log = LogFactoryUtil.getLog(CommonPermissionImpl.class);
075
076 }