001
014
015 package com.liferay.portlet.rolesadmin.search;
016
017 import com.liferay.portal.kernel.dao.search.RowChecker;
018 import com.liferay.portal.kernel.log.Log;
019 import com.liferay.portal.kernel.log.LogFactoryUtil;
020 import com.liferay.portal.model.Role;
021 import com.liferay.portal.model.User;
022 import com.liferay.portal.security.membershippolicy.RoleMembershipPolicyUtil;
023 import com.liferay.portal.service.UserLocalServiceUtil;
024
025 import javax.portlet.RenderResponse;
026
027
030 public class UserRoleChecker extends RowChecker {
031
032 public UserRoleChecker(RenderResponse renderResponse, Role role) {
033 super(renderResponse);
034
035 _role = role;
036 }
037
038 @Override
039 public boolean isChecked(Object obj) {
040 User user = (User)obj;
041
042 try {
043 return UserLocalServiceUtil.hasRoleUser(
044 _role.getRoleId(), user.getUserId());
045 }
046 catch (Exception e) {
047 _log.error(e, e);
048
049 return false;
050 }
051 }
052
053 @Override
054 public boolean isDisabled(Object obj) {
055 User user = (User)obj;
056
057 try {
058 if (isChecked(user)) {
059 if (RoleMembershipPolicyUtil.isRoleRequired(
060 user.getUserId(), _role.getRoleId())) {
061
062 return true;
063 }
064 }
065 else {
066 if (!RoleMembershipPolicyUtil.isRoleAllowed(
067 user.getUserId(), _role.getRoleId())) {
068
069 return true;
070 }
071 }
072 }
073 catch (Exception e) {
074 _log.error(e, e);
075 }
076
077 return super.isDisabled(obj);
078 }
079
080 private static Log _log = LogFactoryUtil.getLog(UserRoleChecker.class);
081
082 private Role _role;
083
084 }